Mohit Tomar Ответов: 2

Не удалось найти ошибку в моем коде


Может ли кто-нибудь, пожалуйста, проверить код ниже и упомянуть проблемную область.

<pre>static void Main(string[] args)
        {
            Console.Write("How many nums to be compared: ");
            int n = int.Parse(Console.ReadLine()); //Parse int n for arr.Length
            int[] arr = new int[n]; //Creates array with name arr and length n
            Console.WriteLine("Enter the nums: "); //To be used while entering elements

            //Registers array elements
            for (int arrIndex = 0; arrIndex < arr.Length; arrIndex++)
            {
                arr[arrIndex] = int.Parse(Console.ReadLine()); //Parse array elements
            }

            //Prints array
            for (int arrIndex = 0; arrIndex < arr.Length; arrIndex++)
            {
                Console.Write(arr[arrIndex] + " ");
            }
            Console.WriteLine();

            GetMax(arr);
        }

        static void GetMax(int[] array)
        {
            if ((array[0]) > (array[1]))
            {
                Console.Write("Number {} is > than {}", array[0], array[1]);
            }
            else if ((array[0]) < (array[1]))
            {
                Console.Write("Number {} is < than {}", array[0], array[1]);
            }
            else
            {
                Console.Write("Number {} and {} are equal", array[0], array[1]);
            }
        }}


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

Я попытался перечитать всю главу о методах из книги, которую я изучаю C#, но не смог найти никакой причины.

Я абсолютный новичок, поэтому прошу вас держать объяснение очень и очень простым.

Это дает мне следующую ошибку, когда я запускаю код

How many nums to be compared: 2
Enter the nums:
1
5
1 5

Unhandled Exception: System.FormatException: Input string was not in a correct format.
   at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
   at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
   at System.IO.TextWriter.Write(String format, Object arg0, Object arg1)
   at System.IO.TextWriter.SyncTextWriter.Write(String format, Object arg0, Object arg1)
   at System.Console.Write(String format, Object arg0, Object arg1)
   at Ch9ExQ2.Program.GetMax(Int32[] array) in C:\Users\mohit\source\ProgFundamExrsQs\Ch9ExQ2\Ch9ExQ2\Program.cs:line 42
   at Ch9ExQ2.Program.Main(String[] args) in C:\Users\mohit\source\ProgFundamExrsQs\Ch9ExQ2\Ch9ExQ2\Program.cs:line 31
Press any key to continue . . .

2 Ответов

Рейтинг:
18

Dirk Bahle

Ваша проблема в том, что Console.Write функция - вы забыли указать индекс для переменной, которая будет отображаться в выходных данных. Вы также должны добавить a Console.ReadKey(); позвоните в конце дня. Main метод, потому что в противном случае вы не увидите вывод при запуске программы из Visual Studio...

static void GetMax(int[] array)
        {
            if ((array[0]) > (array[1]))
            {
                Console.Write("Number {0} is > than {1}", array[0], array[1]);
            }
            else if ((array[0]) < (array[1]))
            {
                Console.Write("Number {0} is < than {1}", array[0], array[1]);
            }
            else
            {
                Console.Write("Number {0} and {1} are equal", array[0], array[1]);
            }
        }


Graeme_Grant

Противопоставить 1 голос

Dirk Bahle

Спасибо, странно - я не вижу причины голосовать за это с 1 звездой?

Graeme_Grant

именно так

Dirk Bahle

Похоже, это случилось снова.:
https://www.codeproject.com/Answers/1261498/Best-way-to-design-my-classes-for-the-requirement#answer2

Это заставляет меня задуматься, может быть, это тот же самый человек, который пытается решить личную проблему со мной или СР ...?

Graeme_Grant

да

Dirk Bahle

thanx - действительно забавно это случайное понижение голоса...

Рейтинг:
1

Mohit Tomar

Спасибо, что обратили на это внимание.

В следующий раз я буду более внимательным, перепроверяя свои коды.

Спасибо снова. Да, сейчас программа работает.


Richard Deeming

Если вы хотите ответить на решение, нажмите кнопку "есть вопрос или комментарий?" кнопка под этим решением.

НЕ опубликуйте свой комментарий как новое "решение".