该程序首先询问用户要存储在数组中的元素的数量,然后询问数量。
这是我的代码
static void Main(string[] args)
{
Console.Write("How many numbers do you want to store in array: ");
int n = Convert.ToInt32(Console.ReadLine());
int[] numbers = new int[n];
int min = numbers[0];
int max = numbers[0];
for (int i = 0; i < n; i++)
{
Console.Write("Enter number {0}: ", i+1);
numbers[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i < n; i++)
{
if (min > numbers[i]) min = numbers[i];
if (max < numbers[i]) max = numbers[i];
}
Console.WriteLine("The minimum is: {0}", min);
Console.WriteLine("The maximum is: {0}", max);
Console.ReadKey();
}
}
}
但是最小值始终为0,为什么呢?
你的问题是,你初始化min
并max
以numbers[0]
之前填充数字,所以他们都得到设置为零。无论是min
(如果您的所有数字均为正)还是max
(如果您的所有数字均为负)都是错误的。
如果您移动块
int min = numbers[0];
int max = numbers[0];
到后块
for (int i = 0; i < n; i++)
{
Console.Write("Enter number {0}: ", i+1);
numbers[i] = Convert.ToInt32(Console.ReadLine());
}
然后将min
和max
都初始化为第一个输入数字,这很好。实际上,您可以将for
循环限制为仅检查后续数字:
for (int i = 1; i < n; i++)
....
只要确保用户的值n
大于零即可!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句