1108 Finding Average(考察sscanf和sprintf)

英文题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805360777347072

中文题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805272659214336

 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 
 5 int main() {
 6     int n,cnt = 0;
 7     double sum = 0;
 8     scanf("%d",&n);
 9     while(n--) {
10         int flag = 0;
11         double t;
12         char a[200],b[200];
13         scanf("%s",a);
14         sscanf(a,"%lf",&t);
15         sprintf(b,"%.2f",t);
16         for(int i = 0; i < strlen(a); ++i) {
17             if(a[i] != b[i]) {
18                 flag = 1;
19                 break;
20             }
21         }
22         if(flag || t < -1000 || t > 1000) printf("ERROR: %s is not a legal number\n",a);
23         else {
24             cnt++;
25             sum += t;
26         }
27     }
28     if(cnt == 0) printf("The average of 0 numbers is Undefined\n");
29     else if(cnt == 1) printf("The average of 1 number is %.2f\n",sum);
30     else printf("The average of %d numbers is %.2f\n",cnt,sum/cnt);
31     return 0;
32 }

猜你喜欢

转载自www.cnblogs.com/keep23456/p/12566452.html