#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char str[110][1100];
int main(){
int n;
int count=0;
double average=0;
scanf("%d",&n);
for(int i=0;i<n;i++){
bool isNumber=true;
int dot=0;
int dotnum=0;
scanf("%s",str[i]);
int len=strlen(str[i]);
for(int j=0;j<len;j++){
if(dot==1) dotnum++;
if(str[i][j]=='-'&&j!=0){
isNumber=false;
break;
}
if(str[i][j]=='.'){
dot++;
}
else{
if((str[i][j]<'0'||str[i][j]>'9')&&(str[i][j]!='-')){
isNumber=false;
break;
}
}
if(dot>=2||dotnum>=3){
isNumber=false;
break;
}
}
double num=atof(str[i]);
if(num>1000||num<-1000){
isNumber=false;
}
if(isNumber){
count++;
average+=num;
}
else{
printf("ERROR: %s is not a legal number\n",str[i]);
}
}
if(count==0)
printf("The average of 0 numbers is Undefined");
else if(count==1)
printf("The average of %d number is %.2f",count,average);
else
printf("The average of %d numbers is %.2f",count,average/count);
}
1054. 求平均值 (20) PAT乙级&&1108. Finding Average (20)PAT甲级
最新推荐文章于 2021-05-21 11:48:53 发布
本文介绍了一个简单的C语言程序,该程序用于验证用户输入的字符串是否为合法的数值,并计算所有合法数值的平均值。程序首先读取数值的数量,然后逐个检查每个输入,确保其符合数值的标准格式,包括小数点的正确使用及数值范围限制。

487

被折叠的 条评论
为什么被折叠?



