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

namespace ovning_grunder5._1
{
    class Program
    {
        static void Main(string[] args)
        {
            string input;
            int[] tal1;
            int i = 0;
            int count = 0;
            int large = 0;
            Console.WriteLine("Mata in tal och avsluta med 0");
            input = Console.ReadLine();
            while (input != "0")
            {
                tal1[i] = Convert.ToInt32(input); //Error Occurres here after the second input is given.
                input = Console.ReadLine();
                i++;
                Console.WriteLine(tal1[i]);
            }
            while (tal1[count] <= i)
            {
                if (tal1[count] < large)
                {                        
                    large = tal1[count];
                }
                count++;
            }
        }
    }
}

当我运行程序时,我在程序中添加了输入中断并给出错误"An unhandled exception of type 'System.IndexOutOfRangeException' occurred."有人知道如何解决这个问题吗?

4

2 回答 2

0

如果你知道你需要的数组的大小,那么首先用如下的大小初始化

int[] tal1 = new int[10];

否则你可以使用List<int>

List<int> tal1 = new List<int>();
while (input != "0")
{
  tal1.Add(Convert.ToInt32(input));
  input = Console.ReadLine();
}
large = tal1.Max();
于 2013-09-30T16:23:18.397 回答
0

您将 tal1 声明为数组,但从未初始化它。我建议在这里使用通用列表而不是数组:

var tal1 = new System.Collections.Generic.List<int>();
于 2013-09-30T16:23:52.487 回答