对每个非法输入,在一行中输出“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
intmain(void) { int n; char s[SIZE]; double num, sum = 0; int count = 0; //合法数的个数
scanf("%d", &n); for (int i = 0; i < n; ++i) { scanf("%s", s); if (sToDouble(s, &num)) { sum += num; ++count; } else { printf("ERROR: %s is not a legal number\n", s); } }
if (count) { printf("The average of %d %s is %.2f\n", count, count == 1 ? "number" : "numbers", sum / count); } else { printf("The average of 0 numbers is Undefined\n"); }