Member 14637431 Ответов: 1

Входная строка была не в правильном формате


Ошибка, которую я получаю, заключается в том, что "входная строка была не в правильном формате", это код
static void Main(string[] args)
       {
           int numberOne;
           int numberTwo;
           int numberThree;
           int numberFour;
           int numberFive;

           Console.WriteLine("Enter the first integer");
           numberOne = int.Parse(Console.ReadLine());

           Console.WriteLine("Enter the second integer");
           numberTwo = int.Parse(Console.ReadLine());

           Console.WriteLine("Enter the third integer");
           numberThree = int.Parse(Console.ReadLine());

           Console.WriteLine("Enter the fourth integer");
           numberFour = int.Parse(Console.ReadLine());

           Console.WriteLine("Enter the fifth integer");
           numberFive = int.Parse(Console.ReadLine());


           Arithmetic arithmetic = new Arithmetic();
           arithmetic.ArithmeticMethod();
       }
   }


public void ArithmeticMethod()
      {
          int numberOne;
          int numberTwo;
          int numberThree;
          int numberFour;
          int numberFive;

          numberOne = int.Parse(Console.ReadLine());

          numberTwo = int.Parse(Console.ReadLine());

          numberThree = int.Parse(Console.ReadLine());

          numberFour = int.Parse(Console.ReadLine());

          numberFive = int.Parse(Console.ReadLine());

          Sum(numberOne, numberTwo, numberThree, numberFour, numberFive);
          Average(numberOne, numberTwo, numberThree, numberFour, numberFive);
          Product(numberOne, numberTwo, numberThree, numberFour, numberFive);
          SmallestNumber(numberOne, numberTwo, numberThree, numberFour, numberFive);
          LargestNumber(numberOne, numberTwo, numberThree, numberFour, numberFive);
      }
      public static int Sum(int numberOne, int numberTwo, int numberThree, int numberFour, int numberFive)
      {
          int sum;
          sum = numberOne + numberTwo + numberThree + numberFour + numberFive;
          Console.WriteLine($"the sum of the integers is {sum}");
          return sum;
      }


Я действительно не знаю, что происходит.

Что я уже пробовал:

я пытался разыграть его по-другому, но ничего не получается.

Patrice T

Где же ошибка ?
Что такое виновный вход ?

Member 14637431

Ints во второй части кода

1 Ответов

Рейтинг:
7

Dave Kreskowiak

Если вы просто нажмете enter на любой из этих строк чтения, не вводя значение, то есть оставив его пустым, это преобразование завершится неудачей. Пустая строка не может быть преобразована в число.

Разверните эти строки int.Parse. Это означает, что не ставьте консоль.Найдите назвать в ними. Замените int.Prase на int.Вместо этого попробуй спарситься. Google для "int.TryParse" для получения документации о том, как его использовать.

Кроме того, повторяющийся код просто кричит: "сделай меня своим собственным методом!". Создайте метод, который просто принимает входные данные и анализирует эти входные данные в целое число, а затем возвращает целое число.


Maciej Los

5ed!

Member 14637431

Я думаю, что понимаю, о чем вы говорите, Я просто запутался в том, как реализовать TryParse с пользовательским вводом/чтением строки

Dave Kreskowiak

Выломайте консоль.ReadLine в свою собственную строку кода:

    string inputValue = Console.ReadLine();

Теперь у вас есть входные данные в своей собственной строке и вы можете делать с ними другие вещи, например, делать свой код гораздо более отладочным и анализировать строку с помощью int.Метод tryparse.

Member 13566383

Делайте это шаг за шагом.
Первый шаг: прочтите документацию ( https://docs.microsoft.com/en-us/dotnet/api/system.int32.tryparse?view=netframework-4.8 )
Второй шаг: скопируйте пример, приведенный в документации, которую я процитировал, и попытайтесь понять, что происходит. Используйте отладчик для пошагового выполнения кода.
Третий шаг: примените полученные знания к своей программе.