OMG(绝望版 2021-11-01 11:50 采纳率: 100%
浏览 18
已结题

pat乙级1054求平均数,有一个测试答案错误,是漏了哪种情况


import java.util.Scanner;
import java.util.regex.Pattern;

class Main {
public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int count = sc.nextInt();
    float sum = 0;//计算符合条件的额总数和
    int zong = 0;//计算符合条件的个数
    for(int i = 0;i<count;i++){
        String a = sc.next();
        String rex = "([\\+ \\-]?(([1-9]\\d*)|(0)))([.]\\d{0,2})?";
        if(a.matches(rex)){
            //是数字
            float b = Float.parseFloat(a);
            if((b>=-1000)&&(b<=1000)){
                //没有超过范围
                String str = b+"";
                int num = str.length()-(str.indexOf(".")+1);
                if(num<=2){
                    //没有超过两位小数
                    zong++;
                    sum+=b;
                }else{
                    //输出超出两位小数不是一个有效数字
                    System.out.println("ERROR: "+a+" is not a legal number");
                }
            }else{
                //输出超出范围不是一个有效数字
                System.out.println("ERROR: "+a+" is not a legal number");
            }
        }else{
            //输出字母不是一个有效的数字
            System.out.println("ERROR: "+a+" is not a legal number");
        }
    }
    if(zong!=0){
    float ave = sum/zong;
    System.out.print("The average of "+zong+" numbers is ");
    System.out.printf("%.2f",ave);
    System.out.println();
    }else{
        System.out.println("The average of 0 numbers is Undefined");
    }
}
}


img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月9日
    • 创建了问题 11月1日

    悬赏问题

    • ¥15 sqlserver执行存储过程报错
    • ¥100 nuxt、uniapp、ruoyi-vue 相关发布问题
    • ¥15 浮窗和全屏应用同时存在,全屏应用输入法无法弹出
    • ¥100 matlab2009 32位一直初始化
    • ¥15 Expected type 'str | PathLike[str]…… bytes' instead
    • ¥15 为什么在iis上部署网站,服务器可以访问,但是本地电脑访问不了
    • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数
    • ¥15 ADS时域 连续相位观察方法
    • ¥15 Opencv配置出错
    • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。