2015-08-08 4 views
2

Не мог бы кто-нибудь рассказать мне, что я делаю неправильно, потому что я не могу найти, где я возился. 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(); 
      } 
     } 
    } 
} 
+0

Измените условия if, например. "if (num1> num2 && num1> num3)". – Graffito

+0

Как насчет проверки сообщения об ошибке Visual Studio или компилятор дает? Тогда не будет проблем, зная, где ошибка, или что. –

ответ

1

Вы используете оператор & & неправильно. Это двоичный логический оператор AND, он возвращает true, если оба аргумента оцениваются как true.

Вместо (num1 > num2 && num3) вам необходимо написать (num1 > num2 && num1 > num3) (и так далее).

0
   if (num1 > num2 && num3) 

Это не сравнивает первое число с другими двумя.

Вы хотите

 if (num1 > num2 && num1> num3) 

Также вы должны использовать> =, если существует вероятность наличия дублей

В коде 2,2,1 будет возвращать «цифры равны»

0

если заявление определяет, какой оператор для выполнения на основе значения логического выражения

в вас код num2 и num3 не являются логические значения, так что вы должны фактически создать логическое выражение,

Подробнее here

0

Вы можете заменить всю вещь с:

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

Или, если вы заинтересованы в использовании LINQ, вы можете поместить три числа в массив, а затем просто использовать функцию Max.

Смежные вопросы