class Sort
    {
        int[] a = new int[10];
        public Sort()
        {
            int i;
            Console.WriteLine("Please enter 10 numbers");
            for (i = 0; i < a.Length; i++)
                a[i] = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("The result is:");
            Array.Sort(a);
            for (i = 0; i <a.Length; i++) ;
            Console.WriteLine(a[i]);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
           Sort obj=new Sort();
           Console.ReadKey();
        }
    }
运行一直显示索引超出了数组界限;可是应该没超呀
哪里不对啊?

解决方案 »

  1.   

    for (i = 0; i < a.Length; i++)
                    a[i] = Convert.ToInt32(Console.ReadLine());
      

  2.   


     class Sort
        {
            int[] a = new int[10];
            public Sort()
            {
                int i;
                Console.WriteLine("Please enter 10 numbers");
                for (i = 0; i < a.Length; i++)
                    a[i] = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("The result is:");
                Array.Sort(a);
                for (i = 0; i <a.Length; i++) ;
                Console.WriteLine(a[i]);
            }
        }
    第二个for循环后面多了个分号;
    相当于一个空循环,下面Console.WriteLine(a[i]);的时候i就等于10了。
      

  3.   

    for (i = 0; i <a.Length; i++) ;//空循环后i==10
                Console.WriteLine(a[i]);//Console.WriteLine(a[10])
      

  4.   

    第二个for循环多了个分号,大意了