编写程序求输入的非负数序列的最小值
本文关键字:最小值 程序 输入 | 更新日期: 2023-09-27 18:13:33
我在GetMinimumNumber()
中的逻辑有问题。我知道我必须给最小值赋一个值才能让一切开始但不知怎么的,当我这么做的时候,结果总是0。
namespace Num16
{
class Program
{
static void Main(string[] args)
{
int minimum = 0, userInput;
//call GetUserInput and pass a string prompt to it
userInput = GetUserInput("Enter the first number or -1 to quit.");
//determine if the program should procede.
while (userInput >= 0)
{
minimum = GetMinimumNumber(userInput,minimum);
userInput = GetUserInput("Enter the next number or -1 to quit.");
}
Console.WriteLine("The minimum is: {0}",minimum);
}//end main()
public static int GetMinimumNumber(int userInput, int minimum)
{
int a, b;
if (userInput < minimum )
{
minimum = userInput;
return minimum;
}
else
{
return userInput;
}
}//end GetMinimumNumber()
public static int GetUserInput(string prompt)
{
Console.WriteLine(prompt);
return int.Parse (Console.ReadLine());
}//end GetUserInput()
}
}
为什么总是返回0?
将minimum
初始化为0,并且只将其与正数进行比较。因此,永远不会有一个小于minimum
的数字,并且最小值保持为0。
你应该初始化最小值为int.MaxValue
您可以使用LINQ:
int[] numbers = new int[] {1, 7, -2, 3};
int min = numbers.Min();
Console.WriteLine(min);