Katelisa 2022-03-05 11:51 采纳率: 86.4%
浏览 19
已结题

(java)请问下面这个程序该怎么改才能满足输出🙂

输入若干考试分数,以输入-1结束;
输出均分,以及大于均分的成绩。

img

  • 写回答

3条回答 默认 最新

  • Pluto_/ 2022-03-05 15:25
    关注

    望采纳

    public class Test {
    
        public static void main(String[] args) {
            List<Integer> list = new ArrayList<>();
            while (true) {
                int input;
                Scanner scanner = new Scanner(System.in);
                System.out.println("请输入分数,以输入-1结束");
                input = scanner.nextInt();
                if (input == -1) {
                    break;
                }
                list.add(input);
    
            }
            int size = list.size();
            int sum = 0;
            for (int i = 0; i < size; i++) {
                sum += list.get(i);
            }
            BigDecimal avg = divide(sum, size);
            System.out.println("平均分数是:" + avg);
    
            StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < size; i++) {
                Integer integer = list.get(i);
                if (integer > avg.doubleValue()) {
                    stringBuilder.append(integer);
                    if (i < size - 1) {
                        stringBuilder.append(",");
                    }
                }
            }
            if (stringBuilder.length() > 0) {
                System.out.println("大于平均分数的有:" + stringBuilder.toString());
            }
    
    
        }
    
    
        /**
         * @param divisor  除数
         * @param dividend 被除数
         * @return
         */
        public static BigDecimal divide(int divisor, int dividend) {
            BigDecimal a = new BigDecimal(divisor);
            BigDecimal b = new BigDecimal(dividend);
            return a.divide(b, 4, BigDecimal.ROUND_HALF_UP);
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 已采纳回答 3月27日
  • 创建了问题 3月5日