我這個是一個一個輸入的但是五個數輸完就后面的就運行不了了,是什么原因?。?/h1>
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);
}
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);
}
2019-08-02
數組下標越界異常
數組下標從0開始到數組長度減一結束
第一個for改成這樣就ok了
for(int j=0;j<nums.length;j++) {
System.out.println("請輸入第"+(j+1)+"次值");
nums[j]=input.nextInt();
}