找到几个整数的最小值

时间:2013-12-24 18:15:53

标签: c#

在需要用户输入整数数量的程序中,我无法找到如何显示所有值的最小值。

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);


}

9 个答案:

答案 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来对象。

  1. 使用Min方法
  2. 按降序对数据进行排序,然后选择第一个

答案 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)

  • 例如将Min声明为全局静态 - public static int Min
  • 将循环条件更改为for(i = 0; i&lt; number.Length -1; i ++)超过一个索引范围
  • 将Console.ReadLine放在最后。

或者您不必存储所有数字

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();
}