题目链接
解题思路参考柳婼
/*
sscanf() – 从⼀个字符串中读进与指定格式相符的数据
sprintf() – 字符串格式化命令,主要功能是把格式化的数据写⼊某个字符串中
*/
#include<iostream>
#include<cstring> //strlen
using namespace std;
int main(){
int n;
cin>>n;
char in[50],out[50];
double temp,sum=0.0;
int cnt=0;
for(int i=0;i<n;i++){
scanf("%s",in);
sscanf(in,"%lf",&temp); //只将浮点数读入temp,若不是浮点数,则不读入
sprintf(out,"%.2f",temp); //将temp保留两位小数保存到out
bool flag=true;
for(int i=0;i<strlen(in);i++)
if(in[i]!=out[i]) flag=false;
if(!flag||temp>1000||temp<-1000)
printf("ERROR: %s is not a legal number\n",in);
else{
sum+=temp;
cnt++;
}
}
if(cnt==0) printf("The average of 0 numbers is Undefined\n");
else if(cnt==1) printf("The average of 1 number is %.2f\n",sum); //别忘了%.2f
else printf("The average of %d numbers is %.2f\n",cnt,sum/cnt);
return 0;
}

224

被折叠的 条评论
为什么被折叠?



