题目传送门
sscanf() – 从⼀一个字符串串中读进与指定格式相符的数据
sprintf() – 字符串串格式化命令,主要功能是把格式化的数据写⼊入某个字符串串中
#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
int main()
{
int n, cnt = 0;
cin >> n;
char a[50], b[50];
double t, sum = 0;
for (int i = 0; i < n; i++)
{
scanf("%s", a);
sscanf(a, "%lf", &t);
sprintf(b, "%.2f", t);
int flag = 0;
for (int j = 0; j < strlen(a); j++)
{
if (a[j] != b[j])
{
flag = 1;
break;
}
}
if (t < -1000 || t > 1000 || flag)
{
printf("ERROR: %s is not a legal number\n", a);
continue;
}
else
{
sum += t;
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);
}
else
{
printf("The average of 0 numbers is Undefined");
}
return 0;
}