我的网站域名,域名会影响网站排名吗,自主免费建站网站,通州建设网站题目
本题的基本要求非常简单#xff1a;给定 N 个实数#xff0c;计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数#xff0c;并且最多精确到小数点后 2 位。当你计算平均值的时候#xff0c;不能把那些非法的数…题目
本题的基本要求非常简单给定 N 个实数计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数并且最多精确到小数点后 2 位。当你计算平均值的时候不能把那些非法的数据算在内。
输入格式
输入第一行给出正整数 N≤100。随后一行给出 N 个实数数字间以一个空格分隔。
输出格式
对每个非法输入在一行中输出 ERROR: X is not a legal number其中 X 是输入。最后在一行中输出结果The average of K numbers is Y其中 K 是合法输入的个数Y 是它们的平均值精确到小数点后 2 位。如果平均值无法计算则用 Undefined 替换 Y。如果 K 为 1则输出 The average of 1 number is Y。
输入样例 1
7
5 -3.2 aaa 9999 2.3.4 7.123 2.35输出样例 1
ERROR: aaa is not a legal number
ERROR: 9999 is not a legal number
ERROR: 2.3.4 is not a legal number
ERROR: 7.123 is not a legal number
The average of 3 numbers is 1.38输入样例 2
2
aaa -9999输出样例 2
ERROR: aaa is not a legal number
ERROR: -9999 is not a legal number
The average of 0 numbers is Undefined分析
本体重点在找出非法输入非法输入包含以下非数字aaaa12323a_as3等多个小数点或者负号-2-32.3.4小数位数多1.2313.3331等数值范围-1000如-10011000如1001。还需要注意有1个合法输入时输出The average of 1 number is YY 是它们的平均值。
AC代码
#include iostream
#includeiomanip
#includestring
#includecstdlib
using namespace std;
int main()
{string s,ans;int i,j,n,k0,len,flag10,flag20,flag30;double sum0.0;cinn;for(i0; in; i){cins;lens.length();for(j0; jlen; j){if(s[j]-){ans-;flag1;}else if(s[j].){ans.;flag2;}else if(flag20s[j]0s[j]9){anss[j];}else if(flag20s[j]0s[j]9){flag3;}else{flag12;break;}}float t;try{size_t length;t stof(s,length);}catch(...){}if(flag11||flag21||flag32||t-1000||t1000){coutERROR: s is not a legal numberendl;flag10;flag20;flag30;continue;}flag10;flag20;flag30;k;sumt;}if(k0)coutThe average of 0 numbers is Undefined;else if(k1)coutThe average of k number is fixedsetprecision(2)sum/k;elsecoutThe average of k numbers is fixedsetprecision(2)sum/k;return 0;
}更多题解 PAT 乙级(Basic Level) 题解汇总持续更新C坑点分析