我是C#的新手。我一直致力于这个项目和研究,但我没有得到任何结果。目标是让用户输入数字(用户数量)。当他们输入0时,它将停止程序并显示输入的最小数字,输入的最大数字以及输入的所有数字的平均值。我没有得到任何错误,我得到了。如果有人可以请我指出正确的方向。
WriteLines正在返回:
最低编号为0 最高的数字是0 平均值是:0 数:5
这是我的代码:
int LOWEST =0;
int HIGHEST=0;
const int STOP = 0;
double average = 0;
int input;
int count = 0;
Console.WriteLine("Enter a number. You can end the program at anytime by entering 0");
input = Convert.ToInt32(Console.ReadLine());
while (input != STOP)
{
for (int i=0; input != STOP; i++)
{
Console.WriteLine("Enter a number. You can end the program at anytime by entering 0");
input = Convert.ToInt32(Console.ReadLine());
count++;
var Out = new int[] { input };
LOWEST = Out.Min();
HIGHEST = Out.Max();
average = Out.Average();
if ((input > LOWEST) || (input < HIGHEST))
{
LOWEST = Out.Min();
}
if (input > HIGHEST)
{
HIGHEST = Out.Max();
}
}
}
Console.WriteLine("Lowest number is {0}", LOWEST);
Console.WriteLine("Highest number is {0}", HIGHEST);
Console.WriteLine("Average is {0}", average);
Console.WriteLine("Count: {0}", count);
Console.ReadLine();
答案 0 :(得分:6)
在每次运行中,您将构建一个新的整数数组:
var Out = new int[] { input };
在此行之后,Out包含一个项目:最后一个输入。在其上调用Min
,Max
和Average
将返回最后一个值。如果您结束该计划,则为零。
而不是每次都创建一个新数组,你想在程序的开头创建一个List<int>
,然后将每个输入添加到它。然后,您可以使用整个值列表来计算Min
,Max
和Average
。
最终您可以将代码更改为以下内容:
const int STOP = 0;
int input = -1;
List<int> Out = new List<int>();
while (input != STOP)
{
Console.WriteLine("Enter a number. You can end the program at anytime by entering 0");
input = Convert.ToInt32(Console.ReadLine());
if (input == STOP) break;
Out.Add(input);
}
Console.WriteLine("Lowest number is {0}", Out.Min());
Console.WriteLine("Highest number is {0}", Out.Max());
Console.WriteLine("Average is {0}", Out.Average());
Console.WriteLine("Count: {0}", Out.Count);
Console.ReadLine();
答案 1 :(得分:2)
List<int> numbers = new List<int>();
numbers.Add(10);
numbers.Add(30);
numbers.Add(20);
numbers.Add(0);
numbers.Max();
numbers.Min();
numbers.Average();
返回30,0和15。
答案 2 :(得分:1)
在循环之前,您应该使Out
成为类似于数组List
的可扩展数据结构。
List<int> Out = new List<int>();
然后每个循环,你可以
Out.Add(input);
由于这听起来像是读者的练习,因此您可以遍历列表并计算所有数据值的平均值。
或者,在循环之前,您可以声明
int n = 0;
int total = 0;
和每个循环,执行
n += 1;
total += input;
通过这些,您应该可以轻松计算平均值。