2的测试点过不了是这个问题 The average of 1 number is Y
#include<iostream> #include<cstdio>#include<cstring>#include<cstdlib>using namespace std;double sum=0;int judge(char arr[]){ int len=strlen(arr); if(len>=9)return 0; int p=len,z=0; for(int i=len-1;i>=0;i--) if(arr[i]=='.') { z++;p=i; if(z>=2) return 0; if(p<len-3)return 0; } double num1=0,num2=0; if(p!=len) { for(int i=len-1;i>=p+1;i--) { num1+=arr[i]-'0'; num1*=0.1; } } if(arr[0]!='-') { for(int i=0;i<p;i++) { num2*=10; num2+=arr[i]-'0'; } num2+=num1; } else { for(int i=1;i<p;i++) {num2*=10; num2+=arr[i]-'0'; } num2+=num1; num2*=-1; } if(num2<-1000||num2>1000) return 0; sum+=num2; return 1;}int main(){ int num,count=0; cin>>num; while(num--) { char arr[100]; scanf("%s",arr); if(judge(arr)) count++; else PRintf("ERROR: %s is not a legal number/n",arr); } if(count==1) { printf("The average of 1 number is %.2lf",sum); } else if(count!=0) printf("The average of %d numbers is %.2lf",count,sum*1.0/count); else printf("The average of 0 numbers is Undefined"); return 0;}新闻热点
疑难解答