为了账号安全,请及时绑定邮箱和手机立即绑定

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

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);

}


正在回答

2 回答

数组下标越界异常

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

第一个for改成这样就ok了

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

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

nums[j]=input.nextInt();

}



0 回复 有任何疑惑可以回复我~
#1

qq_慕妹1351099 提问者

噢,感谢
2019-08-05 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信