博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PAT 1054. 求平均值 (20)
阅读量:4602 次
发布时间:2019-06-09

本文共 2178 字,大约阅读时间需要 7 分钟。

本题的基本要求非常简单:给定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:

75 -3.2 aaa 9999 2.3.4 7.123 2.35

输出样例1:

ERROR: aaa is not a legal numberERROR: 9999 is not a legal numberERROR: 2.3.4 is not a legal numberERROR: 7.123 is not a legal numberThe average of 3 numbers is 1.38

输入样例2:

2aaa -9999

输出样例2:

ERROR: aaa is not a legal numberERROR: -9999 is not a legal numberThe average of 0 numbers is Undefined

第三个测试点考虑的是当K等于1的情况

第四个测试点考虑的是[-1000,1000]边界情况,但若考虑小数点位于数最后一位是非法数,则此测试点也不能通过

1 #include
2 #include
3 #include
4 #include
5 #include
6 7 int main(){ 8 int n; 9 char a[20];10 char split[] = ".";11 char temp1[10];12 char temp2[10];13 int h;14 int h1;15 int k;16 double p;17 int n1=0;18 double sum;19 scanf("%d",&n);20 for(int i=0;i
'9')&&a[j]!='-'&&a[j]!='.'){27 k = 1;28 break;29 }30 //是负号但负号不位于第一位31 else if(a[j]=='-'){32 if(j!=0){33 k = 1;34 break;35 }36 }37 //是小数点,但小数点位于第一位,或者第一位是负号,第二位是小数点38 //注意不要考虑最后一位是小数点的情况否则最后一个测试点不通过 39 else if(a[j]=='.'){40 if(a[0]=='-'&&j==1){41 k = 1;42 }43 if(j==0){44 k = 1;45 break;46 }47 }48 //有两位及两位以上的小数点 49 if(a[j]=='.'){50 h++;51 h1 = j;52 if(h>1){53 k = 1;54 break;55 }56 }57 58 59 }60 if(k){61 printf("ERROR: %s is not a legal number\n",a);62 }63 else{64 p = atof(a);65 if(p>1000||p<-1000)66 printf("ERROR: %s is not a legal number\n",a);67 //小数点后有两位以上 68 else if(h==1&&(strlen(a)-h1)>3){69 printf("ERROR: %s is not a legal number\n",a);70 }71 else{72 n1++;73 sum = sum+p;74 }75 }76 77 }78 if(n1>1){79 printf("The average of %d numbers is %.2lf",n1,sum/n1);80 }81 else if(n1==0)82 printf("The average of 0 numbers is Undefined");83 else if(n1==1)84 printf("The average of 1 number is %.2lf",sum/n1);85 }

 

转载于:https://www.cnblogs.com/lolybj/p/6392349.html

你可能感兴趣的文章
exceptionfunction[LeetCode]Permutations
查看>>
Linux(2)_常用命令2
查看>>
自定义分页
查看>>
[转]DELPHI——调试(1)
查看>>
JS秒数转成分秒时间格式
查看>>
xp_cmdshell 命令的开启与关闭,和状态查询
查看>>
Linux sudoers
查看>>
MySQL详解(18)-----------分页方法总结
查看>>
bzoj 4595 激光发生器
查看>>
multi cookie & read bug
查看>>
js时间转换
查看>>
(转载) Android Studio你不知道的调试技巧
查看>>
POJ2231 Moo Volume 递推 C语言
查看>>
struts2类型转换的具体流程
查看>>
Hdu 1203 I NEED A OFFER!
查看>>
php文件上传类
查看>>
CF219D Choosing Capital for Treeland
查看>>
luogu P3809 【模板】后缀排序
查看>>
JVM 调优工具
查看>>
SCTF 2014 pwn题目分析
查看>>