小白求解答 6.6中的练习题
想问一下这个题求平均值为什么不能是avg=sum/(i+1);
想问一下这个题求平均值为什么不能是avg=sum/(i+1);
2016-07-28
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(max<nums[i])
{max=nums[i];}
else if(min>nums[i])
// 如果当前值小于min,则替换min的值
{min=nums[i];}
// 累加求和
sum=sum+nums[i];
// 求平均值
avg=sum/(i+1);}
System.out.println("数组中的最大值:" + max);
System.out.println("数组中的最小值:" + min);
System.out.println("数组中的平均值:" + avg);
}
}
这样才行,可以i+1,不过这样大括号就得在 avg=sum/(i+1); 后面,而不是在sum=sum+nums[i];后面了,如果avg=sum/nums.length;的话,大括号就是在sum=sum+nums[i];后面。前面几楼酱油可以
首先for (int i = 0; i < nums.length; i++);
变量i是定义在for循环内部的,因此该变量i只能在for循环语句块中使用
//楼主可以将变量i定义在for循环外部,其次avg=sun/i;因为循环结束时i==nums.length.
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的值
if(nums[i]<min)min=nums[i];
sum+=nums[i];
// 累加求和
}
avg=sum/i;
System.out.println("数组中的最大值:" + max);
System.out.println("数组中的最小值:" + min);
System.out.println("数组中的平均值:" + avg);
}
}
举报