2017-02-15 20 views
0

Может кто-нибудь объяснить, почему я получаю это за пределы? Вот код:Получение индекса за пределами границ массива

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace testing 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var n = int.Parse(Console.ReadLine()); 
      double[] numbers = new double[] { }; 
      for(int i = 0; i < n; i++) 
      { 
       var input = double.Parse(Console.ReadLine()); 
       numbers[i] = input; 
      } 
      Console.WriteLine(numbers); 
     } 
    } 
} 

ответ

0

Вы не установили размер массива

double[] numbers = new double[n] 
0

Массив имеет фиксированную длину при инициализации. У вас есть размер 0.

double[] numbers = new double[] { }; // { } is the same as 'initialize with 0 elements or no content' 

Вам необходимо использовать список вместо массива.

List<double> numbers = new List<double>(); 

for(int i = 0; i < n; i++) 
{ 
    var input = double.Parse(Console.ReadLine()); 
    numbers.Add(input); 
} 
+0

Спасибо за помощь –