zoukankan      html  css  js  c++  java
  • PAT (Advanced Level) 1108. Finding Average (20)

    简单模拟。

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<vector>
    #include<map>
    #include<queue>
    #include<stack>
    #include<algorithm>
    using namespace std;
    
    char s[1000];
    int n;
    int num,num2,pos;
    
    bool f()
    {
        int p=0;
        for(int i=0;s[i];i++)
        {
            if(s[i]>='0'&&s[i]<='9') continue;
            else if(i==0&&s[i]=='-') continue;
            else if(s[i]=='.') {p++; continue;}
            else return 0;
        }
    
        if(p>1) return 0;
    
        pos=strlen(s);
        for(int i=0;s[i];i++) if(s[i]=='.') pos=i;
    
        int hh=strlen(s)-pos-1;
        if(hh>2) return 0;
    
        num=0;
        for(int i=0;i<pos;i++)
        {
            if(s[i]>='0'&&s[i]<='9')
                num=num*10+s[i]-'0';
            if(num>1000) return 0;
        }
        if(num>1000) return 0;
    
        num2=0;
        for(int i=pos+1;s[i];i++)
            num2=num2*10+s[i]-'0';
    
        double a=1.0*num+num2/(pow(10.0,strlen(s)-pos-1));
        if(a>1000.0) return 0;
    
        return 1;
    }
    
    int main()
    {
        scanf("%d",&n);
        double sum=0;
        int  geshu=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%s",s);
            if(f()==0)
                printf("ERROR: %s is not a legal number
    ",s);
            else
            {
                double a=0;
                a=1.0*num+num2/(pow(10.0,strlen(s)-pos-1));
                if(s[0]=='-') a=-a;
                sum=sum+a;
                geshu++;
            }
        }
        if(geshu==1)
            printf("The average of 1 number is %.2lf
    ",sum);
        else if(geshu==0)
            printf("The average of 0 numbers is Undefined
    ");
        else
            printf("The average of %d numbers is %.2lf
    ",geshu,sum/geshu);
        return 0;
    }
  • 相关阅读:
    oracle number数据类型
    codepage 和 charset
    嵌入式jetty的HTTP实现
    OpenCV For Java环境搭建与功能演示
    luogu P2783 有机化学之神偶尔会做作弊
    [国家集训队]稳定婚姻
    [SCOI2014]方伯伯运椰子
    [APIO2017]商旅
    luogu P1121 环状最大两段子段和
    [APIO/CTSC 2007]数据备份
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5642702.html
Copyright © 2011-2022 走看看