题目
https://pintia.cn/problem-sets/994805342720868352/problems/994805360777347072
题意
给出一组字符串,判断是否符合要求并计算符合要求的数字的平均值
代码解析
使用sscanf和sprintf,详见参考文章
AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,cnt=0;
char a[105],b[105];
double sum=0,tmp=0;
cin>>n;
while(n--)
{
scanf("%s",a);
sscanf(a,"%lf",&tmp);
sprintf(b,"%.2lf",tmp);
int flag=0;
for(int i=0;i<strlen(a);i++)
if(a[i]!=b[i]) flag=1;
if(flag==1||tmp<-1000||tmp>1000)
{
printf("ERROR: %s is not a legal number\n",a);
continue;
}
else
{
cnt++;
sum+=tmp;
}
}
if(cnt==1)
printf("The average of 1 number is %.2lf",sum);
else if(cnt>1)
printf("The average of %d numbers is %.2lf",cnt,sum/cnt);
else
printf("The average of 0 numbers is Undefined");
}