1108 Finding Average (20 分)难度: 简单 / 模拟

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1108 Finding Average (20 分)难度: 简单 / 模拟相关的知识,希望对你有一定的参考价值。


https://pintia.cn/problem-sets/994805342720868352/problems/994805360777347072

#include<bits/stdc++.h>
using namespace std;
int n,cnt;
double sum;
string s;
bool solve(string s)

    int t=0;
    string temp=s;
    if(temp[0]=='-') temp=temp.substr(1);
    if(!temp.size()) return false;
    for(int i=0;i<temp.size();i++)
    
        if(!isdigit(temp[i])&&temp[i]!='.') return false;//有其他的字符
        if(temp[i]=='.') t++;
    
    if(t>1) return false;//小数点个数大于1
    if(t&&s.size()-s.find('.')-1>2) return false;//精度大于2
    double a=stod(s);
    if(a<-1000||a>1000) return false;
    cnt++,sum+=a;
    return true;

int main(void)

    cin>>n;
    for(int i=0;i<n;i++) 
    
        cin>>s;
        if(!solve(s)) printf("ERROR: %s is not a legal number\\n",s.c_str());
    
    if(!cnt) printf("The average of 0 numbers is Undefined");
    else if(cnt==1) printf("The average of 1 number is %.2lf",sum);
    else printf("The average of %d numbers is %.2lf",cnt,sum/cnt);
    return 0;

以上是关于1108 Finding Average (20 分)难度: 简单 / 模拟的主要内容,如果未能解决你的问题,请参考以下文章

PAT 甲级 1108 Finding Average (20分)

1108 Finding Average (20 分)难度: 简单 / 模拟

PAT甲题题解-1108. Finding Average (20)-字符串处理

PAT 1108 Finding Average

ARRAYFORMULA 中的 Google 表格 AVERAGE 函数

UVALive 6955 Finding Lines(随机化优化)题解