2015-08-19 35 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內部,你必須用'i'替換變量'n'。

像這樣:

(...) 

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]; 
} 

(...)