题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805272659214336
参考:https://www.liuchuo.net/archives/617
注意点
这题主要利用了sscanf和sprintf,如下
sscanf(a, "%lf", &temp);//把a输入进temp中sprintf(b, "%.2f", temp);//把temp的东西打印到b里
代码
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){int n, cnt = 0;char a[50], b[50];double temp, sum = 0.0;cin >> n;for(int i = 0; i < n; i++){scanf("%s", a);sscanf(a, "%lf", &temp);sprintf(b, "%.2f", temp);int flag = 0;for(int j = 0; j < strlen(a); j++)if(a[j] != b[j]) flag = 1;if(flag || temp < -1000 || temp > 1000){printf("ERROR: %s is not a legal number\n", a);continue;} else {sum += temp;cnt++;}}if(cnt == 1){printf("The average of 1 number is %.2f", sum);} else if(cnt > 1)printf("The average of %d numbers is %.2f", cnt, sum / cnt);elseprintf("The average of 0 numbers is Undefined");return 0;}
