黑马程序员技术交流社区

标题: 数组练习出错,求指导 [打印本页]

作者: 李明贵    时间: 2012-10-19 15:44
标题: 数组练习出错,求指导
看视频自学到数组,做下练习出错了,求指导

int[] number ={ 13, 25, 123, 46, 684, 20, 13, 254, 16 };
            int max=0,min=0,sum=0,ave=0,i=0;
            for (i = 0; i <=number.Length; i++)
            {
                if (max < number[i])
                {
                    max = number[i];
                }
                if (min > number[i])
                {
                    min = number[i];
                }
                sum = sum + number[i];
            }
            ave = sum / number.Length;
            Console.WriteLine("这个数组的最大值是{0},最小值是{1},和是{2},平均值是{3}",max,min,sum,ave);
            Console.ReadKey();
作者: 颜晋南    时间: 2012-10-19 17:12
for (i = 0; i <=number.Length; i++)
这里的小于等于错了吧。会越界的。
作者: 穆_升    时间: 2012-10-19 17:33
把for循环里面的 i <= number.Length 改成 i < number.Length
原因是计数器i是从0开始的,和数组的下标相对应,而number.Length则是从1开始的,当然就会报错了.
在该例中,数组有9个元素,但下标为0-8,共9个,而for从0开始循环,加等号就等于要循环10次,但找不到数组中第10个数组的元素,所以报错.
作者: 李明贵    时间: 2012-10-19 17:51
哦,谢谢啦
作者: 李明贵    时间: 2012-10-19 18:29
这还有一个错误:min一开始不能赋值为0,否则最小值成0了,应该改成 min=number[0]




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2