从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0

记负均正II

http://www.nowcoder.com/questionTerminal/64f6f222499c4c94b338e588592b6a62

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
    public static void main(String[] args)throws IOException {
        //题目有缺陷,实际是单行输入,如果按照多行无法通过
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String[] strings = reader.readLine().split(" ");
        int countN = 0;
        int countP = 0;
        int sumN = 0;
        for (int i = 0; i < strings.length; i++) {
            try {//考虑输入有别的字符
                int temp = Integer.parseInt(strings[i]);
                if (temp < 0) {
                    countN++;
                }
                if (temp > 0) {
                    sumN += temp;
                    countP++;
                }
            } catch (NumberFormatException e) {
            }
        }
        System.out.println(countN);
        //处理正数总数为零的情况 除数为0
        if (countP > 0) {
            //四舍五入 用double类型四舍五入函数DecimalFormat 之后小数四舍五入值不对
            System.out.print(Math.round(sumN * 10.0 / countP) / 10.0);
        } else {
            System.out.print("0.0");
        }
    }
  }
全部评论
System.out.printf("%.1f\n",sumN * 1.0 / countP);
点赞 回复 分享
发布于 2020-07-26 00:30

相关推荐

点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务