问答详情
源自:6-6 编程练习

我这个是一个一个输入的但是五个数输完就后面的就运行不了了,是什么原因啊?

Scanner input=new Scanner(System.in);//创建scanner对象

int[] nums=new int[5];

for(int j=1;j<=nums.length;j++) {

System.out.println("请输入第"+j+"次值");

nums[j]=input.nextInt();

}

int max=nums[0];//假设第一个值是最大的

int min=nums[0];//假设第二个值是最小的

double sum=0; //累加值

double adv=0;   //平均值

for(int i=0;i<nums.length;i++) {//循环数组中的每一个数

if(nums[i]>max) { //判断数组的值是否比第一个大

max=nums[i];//如果数组的值比第一个大则代替这个数

}

else if(nums[i]<min) {//判断数组的值比min小

min=nums[i]; //如果数组的值比min小则代替这个数

}

sum=sum+nums[i]; //累加求和

}

adv=sum/nums.length;

System.out.println("平均值是:"+adv);

System.out.println("最大值是:"+max);

System.out.println("最小值是"+min);

}


提问者:qq_慕妹1351099 2019-08-02 17:54

个回答

  • xian_yu_
    2019-08-02 23:05:42
    已采纳

    数组下标越界异常

    数组下标从0开始到数组长度减一结束

    第一个for改成这样就ok了

    for(int j=0;j<nums.length;j++) {

    System.out.println("请输入第"+(j+1)+"次值");

    nums[j]=input.nextInt();

    }



  • 慕运维1495087
    2019-08-10 14:00:30

    数组5个空位 下标分别是0,1,2,3,4, 而你却要往不存在的下标5放东西