计算最大值

时间:2015-08-08 00:32:59

标签: c#

有人可以告诉我我做错了什么,因为我似乎无法找到我搞砸的地方。 Visual Studio突出显示了我的if语句,因此我假设问题出在哪里。

using System;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("First number: ");
            int num1 = Convert.ToInt32(Console.ReadLine());
            Console.Write("Second number: ");
            int num2 = Convert.ToInt32(Console.ReadLine());
            Console.Write("Third number: ");
            int num3 = Convert.ToInt32(Console.ReadLine());

            if (num1 > num2 && num3)
            {
                Console.WriteLine("The greatest number is {0}", num1);
                Console.ReadLine();
            }
            else if (num2 > num1 && num3)
            {
                Console.WriteLine("The greatest number is {0}", num2);
                Console.ReadLine();
            }
            else if (num3 > num1 && num2)
            {
                Console.WriteLine("The greatest number is {0}", num3);
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("The number are equal");
                Console.ReadLine();
            }
        }
    }
}

4 个答案:

答案 0 :(得分:1)

您正在使用&&操作员错误。它是二元逻辑AND运算符,如果它的参数都计算为true,则返回true。

而不是(num1 > num2 && num3),你必须写(num1 > num2 && num1 > num3)(等等)。

答案 1 :(得分:0)

               if (num1 > num2 && num3)

这不会将第一个数字与其他两个数字进行比较。

你想要

      if (num1 > num2 && num1> num3)

如果有可能存在重复,你应该使用> =

在您的代码中,2,2,1将返回"数字相等"

答案 2 :(得分:0)

  

if语句根据布尔表达式的值

标识要运行的语句
代码中的

代码num2和num3不是布尔值,所以你需要实际创建一个布尔表达式,

更多信息here

答案 3 :(得分:0)

您可以用以下内容替换整个内容:

Math.Max(Math.Max(num1, num2), num3)

或者,如果您热衷于使用LINQ,可以将三个数字放在一个数组中,然后只使用Max函数。