#include<cstdio>
#include<stdlib.h>
#include<cstring>
int main()
{
int n, count = 0;
double sum = 0;
char str[1000];
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%s", str);
int num = 0;
bool point = 0;
int j;
for (j = 0; j < strlen(str); j++)
{
if (str[j] == '-')
{
if(j!=0) break;
}
else if (str[j] == '.')
{
if (point == 1 || j == 0 || j + 3 < strlen(str)) break;
else point = 1;
}
else if (str[j] > '9' || str[j] < '0') break;
else num++;
}
if (j != strlen(str) || num == 0) printf("ERROR: %s is not a legal number\n", str);
else
{
double value = atof(str);
if (value > 1000 || value < -1000) printf("ERROR: %s is not a legal number\n", str);
else
{
sum += value;
count++;
}
}
}
if (count == 0) printf("The average of 0 numbers is Undefined\n");
else if(count==1) printf("The average of 1 number is %.2lf", count, sum );//这一点真的感觉太坑了,0的时候number都用了s,这里特地设了一个没有s的坑。。。
else printf("The average of %d numbers is %.2lf\n", count, sum / (1.0*count));
return 0;
}
A1108 Finding Average (20 分)atof()函数
最新推荐文章于 2021-04-21 15:36:22 发布