题目如图
import java.util.Scanner;
public class aver {
public static void main(String[] args) {
// TODO Auto-generated method stub
int ri, repeat;
int i, n, sum,a[];
float aver;
sum=0;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri=1; ri<=repeat; ri++){
n=in.nextInt();
a=new int[n];
for(i=0; i<=a.length-1; i++)
{ a[i]=in.nextInt(); //这个循环输入数组各元素
/*--------------*/
sum = sum + a[i];}
aver=sum/n ;
System.out.println("aver="+aver);
}
}
}
运行结果是这个(错误的
有人知道该怎么改嘛或者知道这道题怎么做嘛qwq 可以帮忙看一下嘛
a[i]=in.nextInt(); //这个循环输入数组各元素
/*--------------*/
sum = sum + a[i];}
aver=(float)sum/n ;
System.out.println("aver="+aver);
sum = 0;
两个问题:
1、sum与a[i]都是整型int,两者相除要获取float的结果应该改成aver=(float)sum/n ;
2、第一次运算结束后sum=-3,没有清零。需要在每次运算结束将sum清零
...
for(ri=1; ri<=repeat; ri++){
sum=0;
...
}
遍历数组前要将sum的值清空,不然sum的值会累加计算。