2015-08-19 3 views
-6

Когда я запускаю этот код:Ошибка: Индекс находился вне границ массива

Console.Write("How many numbers do you wish to enter? "); 
    int n = int.Parse(Console.ReadLine()); 

    int[] arrayOfNumbers = new int[n]; 

    for (int i = 0; i < n; i++) 
    { 
     Console.Write("Enter number [{0}]: ", i + 1); 
     arrayOfNumbers[i] = int.Parse(Console.ReadLine()); 
    } 

    int minNumber = arrayOfNumbers[0]; 
    int maxNumber = arrayOfNumbers[0]; 
    int sumOfNumbers = 0; 

    for (int i = 0; i < n; i++) 
    { 
     if (arrayOfNumbers[n] < minNumber) 
     { 
      minNumber = arrayOfNumbers[n]; 
     } 
     else if (arrayOfNumbers[n] > maxNumber) 
     { 
      maxNumber = arrayOfNumbers[n]; 
     } 

     sumOfNumbers += arrayOfNumbers[n]; 
    } 

    double sumDouble = (double)sumOfNumbers; 
    double average = sumDouble/n; 

    Console.Write("The min number is : {0}", minNumber); 
    Console.Write("The max number is : {0}", maxNumber); 
    Console.Write("The sum of the numbers is : {0}", sumOfNumbers); 
    Console.Write("The average sum of the numbers is : {0:f2}", average); 

Это дает мне ошибку: Индекс находился вне границ массива.

Ошибка в строке 28.

У меня есть задача найти минимальное и максимальное число + сумма и среднее значение чисел «N».

+3

Где вы получаете эту ошибку? –

+2

Этот код не создает для меня эту проблему, кстати. –

+0

@ Jon То же самое здесь. – Oluwafemi

ответ

1

Внутри for вы должны заменить переменную 'n' на 'i'.

Как это:

(...) 

for (int i = 0; i < n; i++) 
{ 
    if (arrayOfNumbers[i] < minNumber) 
    { 
     minNumber = arrayOfNumbers[i]; 
    } 
    else if (arrayOfNumbers[i] > maxNumber) 
    { 
     maxNumber = arrayOfNumbers[i]; 
    } 

    sumOfNumbers += arrayOfNumbers[i]; 
} 

(...) 
Смежные вопросы