Что-то не так с моим кодом. Я преподаю себе C#, и одна из проблем в этой главе заключалась в том, чтобы побудить пользователя к 10 номерам, хранить их в массиве, а не запрашивать 1 дополнительный номер. Затем программа скажет, добавляет ли дополнительный номер один из чисел в массиве. Теперь то, что у меня ниже, работает, но только если я вхожу в число сравнения меньше 10, которое является размером массива.Сравнение в массиве
Я не уверен, как это исправить. Я не уверен, как сделать сравнение. Я сначала пробовал цикл FOR, который работал, но пробежал цикл и отобразил сравнение со всеми 10 номерами, чтобы вы получили 9 строк No! и 1 строка «Да!». Я сделал паузу; который остановил его, подсчитав все 10, но если бы я вошел в число 5 для сравнения, то я бы получил 4 строки No! и 1 Да !. Ниже был единственный способ заставить его работать надежно, но только до тех пор, пока число не выходит за границы массива.
Я вижу, почему я получаю сообщение об ошибке, когда число превышает 10, я просто не знаю, что использовать для его сравнения, но все же позволяю пользователю вводить любое допустимое целое число. Любая помощь была бы замечательной!
int[] myNum = new int[10];
Console.WriteLine("Starting program ...");
Console.WriteLine("Please enter 10 numbers.");
for (int i = 0; i <= 9; ++i)
{
Console.Write("Number {0}: ", i + 1);
myNum[i] = Int32.Parse(Console.ReadLine());
}
Console.WriteLine("Thank you. You entered the numbers ");
foreach (int i in myNum)
{
Console.Write("{0} ", i);
}
Console.WriteLine("");
Console.Write("Please enter 1 additional number: ");
int myChoice = Int32.Parse(Console.ReadLine());
Console.WriteLine("Thank you. You entered the number {0}.", myChoice);
int compareArray = myNum[myChoice - 1];
if (compareArray == myChoice)
{
Console.WriteLine("Yes! The number {0} is equal to one of the numbers you previously entered.", myChoice);
}
else
{
Console.WriteLine("No! The number {0} is not equal to any of the entered numbers.", myChoice);
}
Console.WriteLine("End program ...");
Console.ReadLine();
Обратите внимание, что метод '.Contains()' не будет компилироваться, если вы также не используете 'System.Linq;' в вашем .cs-файле. Это «метод расширения», предоставляемый Linq, а не метод класса массива. – CodingWithSpike
Хорошая точка. Я забыл про это. –
Использование System.Linq; включен по умолчанию, когда я создаю новое приложение консоли C#. Это сработало очень хорошо. Так очень просто. – Trido