請問是什么問題
public class HelloWorld {
? ??
? ? public static void main(String[] args) {
? ? ? ??
// 定義一個整型數組,并賦初值
int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };
? ? ? ??
int max = nums[0]; // 假定最大值為數組中的第一個元素
int min = nums[0]; // 假定最小值為數組中的第一個元素
double sum = 0;// 累加值
double avg = 0;// 平均值
? ? ? ??
for (int i = 0; i < nums.length; i++) { // 循環(huán)遍歷數組中的元素
? ? ? ? // 如果當前值大于max,則替換max的值
if(nums[i]<nums[i+1])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? max=nums[i+1];
? ? ? ? ? ? }
? ? ? ? if(nums[i]>nums[i+1])
? ? ? ? {
? ? ? ? ? ? min=nums[i+1];
? ? ? ? }
? ? ? ? sum=sum+nums[i];
? ? ? ??
? ? ? ? // 如果當前值小于min,則替換min的值
? ? ? ??
? ? ? ??
? ? ? ??
? ? ? ? // 累加求和
? ? ? ??
? ? ? ??
}
? ? ? ??
? ? ? ? // 求平均值
? ? ? ?avg=sum/7;
? ? ? ??
System.out.println("數組中的最大值:" + max);
System.out.println("數組中的最小值:" + min);
System.out.println("數組中的平均值:" + avg);
}
}
2017-02-22
這個錯誤的含義是數組越界,數組元素總共有7個,當i=6時,就已經是第7個元素了,但是你的if(nums[i]<nums[i+1])就變成了if(nums[6]<nums[7])已經越界了,咱可以這樣改,if(nums[i]>=max)
?? ???????? max=nums[i];
??? if(nums[i]<=min)
?? ???????? min=nums[i];
這樣就可以正確答案了
2017-02-21