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 }