编写程序求输入的非负数序列的最小值

本文关键字:最小值 程序 输入 | 更新日期: 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);