Мой код должен печатать массив целых чисел, в котором пользователь вводит столько элементов, сколько захочет, и введите -99 (как строку), чтобы выйти из цикла. Также допустимый диапазон записей - 0 - 10 с 0 и 10 включенными. Я получаю неправильные результаты при печати массива, когда он печатает только последнюю запись и нули после. Код находится в консоли C#. Любая помощь будет оценена. Спасибо.Ошибка печати массива C# Консоль
namespace ExeNo1Ch7
{
class Program
{
static void Main(string[] args)
{
int numOfEntry;
int[] intNumbers = new int[100];
numOfEntry = GetArrayOfIntegers(intNumbers);
Console.WriteLine("\t\n You have entered " + numOfEntry + " values " + "\t\n" + "They are:");
for (int i = 0; i < numOfEntry; i++)
{
Console.WriteLine("\t\n" + intNumbers[i]);
}
Console.WriteLine("\t\n<< Press any key to Exit >> ");
Console.ReadKey();
}
public static int GetArrayOfIntegers(int[] anArray)
{
string strValue;
int counter = 0;
Console.Write("\t\n Enter an enteger from 0 - 10 :");
strValue = Console.ReadLine();
for (int i = 0; i < anArray.Length; i++)
{
while (strValue != "-99")
{
anArray[i] = int.Parse(strValue);
counter = counter + 1;
if (anArray[i] >= 0 && anArray[i] <= 10)
{
Console.Write("\t\n Enter an enteger from 0 - 10 :");
strValue = Console.ReadLine();
}
else
{
Console.WriteLine("\t\n Please try again entering an integer in the range (0 - 10) only,");
Console.Write("\t\n Enter an enteger from 0 - 10 :");
strValue = Console.ReadLine();
}
}
}
return counter;
}
Много пустых строк в коде сделать это ужасно читать. –
Это просто так неправильно. Ваш учитель не будет счастлив. Чтобы ответить на ваш вопрос, причина, по которой вы печатаете только последний элемент, заключается в том, что вы фактически не увеличиваете 'i' вообще - все ваши« вращение »выполняется во время цикла внутри, поэтому вы назначаете только первый индекс , и когда вы наконец введете '-99', он выполнит оставшиеся 99 шагов (без чтения каких-либо целых чисел) и возвращает. – Luaan
Вы не должны использовать цикл for и цикл while. Отбросьте цикл for и отслеживайте, какие записи в массиве были заполнены (через счет). Используйте count, чтобы определить, где в массиве хранить значение, которое вводит пользователь. – steveg89