namespace 前20项的和及平均数
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("数列1、1、2、3、5、8、13、21、34、56……的前20项的和为:");
            int[] sum = new int[20];
            int str = 0;
            for (int i = 0; i < 9; i++)
            {
                sum[0] = 1;
                sum[1] = 1;
                sum[i + 2] = sum[i + 1] + sum[i];
                str += sum[i];
            }
            Console.WriteLine(str);
            Console.ReadLine();
        }
    }
}出现的问题为“索引超出了数组界限(确保列表中的最大索引小于列表索引)”
我是新手,不知道是哪里写错了,望各位大哥指点指点……

解决方案 »

  1.   

    int[] sum = new int[20];   给的长度小了  把20改大
      

  2.   


    namespace 前20项的和及平均数
    {
    class Program
    {
    static void Main(string[] args)
    {
    Console.WriteLine("数列1、1、2、3、5、8、13、21、34、56……的前20项的和为:");
    int[] sum = new int[20];
    int str = 0;
    sum[0] = 1;
    sum[1] = 1;
    for (int i = 0; i < 18; i++)
    {
    sum[i + 2] = sum[i + 1] + sum[i];
    str += sum[i];
    }
    Console.WriteLine("Total:" + str);
    Console.WriteLine("Average:" + str / 20);
    Console.ReadLine();
    }
    }
    }斐波那契数列吧,应该这样,你给的那个代码运行没问题,不过不是前20
      

  3.   


    namespace 前20项的和及平均数
    {
    class Program
    {
    static void Main(string[] args)
    {
    Console.WriteLine("数列1、1、2、3、5、8、13、21、34、56……的前20项的和为:");
    int[] sum = new int[20];
    int str = 0;
    sum[0] = 1;
    sum[1] = 1;
    str += 2;
    for (int i = 0; i < 18; i++)
    {
    sum[i + 2] = sum[i + 1] + sum[i];
    str += sum[i + 2];
    }
    Console.WriteLine("Total:" + str);
    Console.WriteLine("Average:" + str / 20);
    Console.ReadLine();
    }
    }
    }不好意思,打错了……应该是这个
      

  4.   

    for (int i = 0; i < 9; i++)只循环9次?
    sum[0] = 1;
    sum[1] = 1;最好拿到循环外