差点迟到
2016-05-14 19:34
数组中的最大值:148 数组中的最小值:4 数组中的平均值:343.0 什么鬼?求指导。
源代码:
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++) { // 循环遍历数组中的元素
// 如果当前值大于max,则替换max的值
if(nums[i] >max){
max=nums[i];
}
// 如果当前值小于min,则替换min的值
else if(nums[i]<min){
min=nums[i];
}
// 累加求和
for(int j=0;j<nums.length;j++){
sum=nums[j]+nums[j--];
}
}
// 求平均值
avg=sum/7;
System.out.println("数组中的最大值:" + max);
System.out.println("数组中的最小值:" + min);
System.out.println("数组中的平均值:" + avg);
}
}
最后一个for循环要独立出来,不能在上一个for循环里。
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++) {
if(nums[i]>max){
max = nums[i];
}
if(nums[i]<min){
min = nums[i];
}
}
for(int j = 0;j < nums.length;j++){
sum += nums[j];
}
avg = sum / nums.length;
System.out.println("数组中的最大值:" + max);
System.out.println("数组中的最小值:" + min);
System.out.println("数组中的平均值:" + avg);
}
}
因为你这个累加求和是在前一个for循环语句下进行的,所以被叠加了七次,你把累加求和的循环语句的大括号放第二个for,前面就没问题了
sum=sum+nums[i];
avg=sum/nums.length;
可以参考一下图上的问题注解
Java入门第一季(IDEA工具)升级版
1167347 学习 · 18629 问题
相似问题