在需要用户输入整数数量的程序中,我无法找到如何显示所有值的最小值。
static void Main(string[] args)
{
Console.WriteLine("\n Number of values:");
int num = Convert.ToInt32(Console.ReadLine());
int[] number = new int[num];
int i;
for (i = 0; i < number.Length; i++)
{
Console.WriteLine("\n Enter value:");
number[i] = Convert.ToInt32(Console.ReadLine());
}
for (i = 0; i < number.Length; i++)
{
int Min = number[0];
if (number[i + 1] < Min)
{
Min = number[i + 1];
}
}
Console.WriteLine("Smallest is {0}", Min);
}
答案 0 :(得分:5)
在for循环
之外声明Min
int Min = number[0];
for (i = 1; i < number.Length; i++)
{
if (number[i] < Min)
{
Min = number[i];
}
}
答案 1 :(得分:3)
有一些方法可以帮到你:
int[] number = new int[num];
int min = number.Min();
答案 2 :(得分:3)
使用此:
int minNumber = numbers.Min();
答案 3 :(得分:2)
您可以使用Min
方法计算此内容。
int min = number.Min();
答案 4 :(得分:1)
public static int FindMinimum(int[] values)
{
int result = int.MaxValue;
foreach (int value in values)
result = Math.Min(result, value);
return result;
}
答案 5 :(得分:1)
您当前的代码将溢出数组。您应首先检查索引0,然后检查其余部分。
替换
for (i = 0; i < number.Length; i++)
{
int Min = number[0];
if (number[i + 1] < Min)
{
Min = number[i + 1];
}
}
带
int Min = number[0];
for (i = 1; i < number.Length; i++)
{
if (number[i] < Min)
{
Min = number[i];
}
}
但是,您只需将Enumerable.Min()用作int Min = number.Min(x => x)
答案 6 :(得分:0)
你可以使用linq来对象。
答案 7 :(得分:0)
怎么样?!
int[] Numbers = new int[5] { 3, 5, 7, 9, 11, 15 };
var q = (from Num in Numbers
select Num).Min();
查看来自MSDN的LINQ样本:http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
答案 8 :(得分:0)
或者您不必存储所有数字
static void Main(string[] args)
{
int min = int.MaxValue;
Console.WriteLine("\n Number of values:");
int num = Convert.ToInt32(Console.ReadLine());
var enteredValue = 0;
for (var i = 0; i < num; i++)
{
Console.WriteLine("\n Enter value:");
enteredValue = Convert.ToInt32(Console.ReadLine());
if (min>enteredValue) min = enteredValue;
}
Console.WriteLine("Smallest is {0}", min);
Console.ReadLine();
}