Java机试题: 记负均正

描述

输入 n 个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0
本题有多组输入数据,输入到文件末尾。
 
数据范围: ,其中每个数都满足 

输入描述:

输入任意个整数,每行输入一个。

输出描述:

输出负数个数以及所有非负数的平均值

复制代码
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;


public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        List<Integer> negative = new ArrayList<Integer>();
        List<Integer> positive = new ArrayList<Integer>();
        double sum = 0.0;
        int nums = 0;
        while (sc.hasNext()) {
            int num = sc.nextInt();
            if(num < 0) {
                negative.add(num);
            } else {
                positive.add(num);
                sum += num;
                nums++;
            }
        }
        System.out.println(negative.size());
        if(positive.size() == 0) {
            System.out.println(0.0);
        } else {
            /* 本题使用BigDecimal精度与题目不同,直接使用输出格式近似即可
             * BigDecimal sums = new BigDecimal(sum); sums = sums.divide(new
             * BigDecimal(nums),BigDecimal.ROUND_HALF_UP);
             * System.out.println(sums.setScale(1,BigDecimal.ROUND_HALF_UP));
             */
              // 输出也可以直接设置精度,这里的lf,是1,不是英文l
             System.out.printf("%.1f",sum / nums);
        }
    }
}
复制代码

题目来源:牛客网

posted @   对月当歌  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示