Java 程序填空 求平均值!

题目如图

img

img


我做的

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);
          }
    }

}


运行结果是这个(错误的

img

有人知道该怎么改嘛或者知道这道题怎么做嘛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的值会累加计算。

img