我是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();
Run Code Online (Sandbox Code Playgroud)
在每次运行中,您将构建一个新的整数数组:
var Out = new int[] { input };
Run Code Online (Sandbox Code Playgroud)
在此行之后,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();
Run Code Online (Sandbox Code Playgroud)