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)-字符串处理