标签:f2 NULL 1054 平均值 int 0.005 include cout
易错点
- 变量名要看清楚
- 操作数组要谨慎
代码
#include <iostream>
#include <cstdio>
#include <string>
#include <iomanip>
using namespace std;
int main(){
int n;
string s;
cin>>n;
int f=0;
int f2;
int cnt=0;
float t=0;
for(int i=0;i<n;i++){
cin>>s;
f=0;
f2=0;
for(int i=0;s[i]!=NULL;i++){
if(s[i]=='+'||s[i]=='-'){
if(i==0){
if(s[1]==NULL){
cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
f=1;
break;
}
else if(s[1]=='.'){
cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
f=1;
break;
}
}
else{
cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
f=1;
break;
}
}
else if(s[i]=='.'){
if(i==0){
cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
f=1;
break;
}
if(f2==0){
f2=1;
}
else{
cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
f=1;
break;
}
if(s[i+3]!=NULL&&s[i+1]!=NULL&&s[i+2]!=NULL){
if(s[i+3]<='9'&&s[i+3]>='0'){
cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
f=1;
break;
}
}
}
else if(s[i]<'0'||s[i]>'9'){
cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
f=1;
break;
}
}
if(f==0){
if(stof(s)>=-1000&&stof(s)<=1000){
cnt++;
t+=stof(s);
}
else{
cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
}
}
}
if(cnt==1){
cout<<"The average of 1 number is ";
if(t/cnt<0&&t/cnt>-0.005){
cout<<fixed<<setprecision(2)<<0;
}
else{
cout<<fixed<<setprecision(2)<<(t/cnt);
}
}
else if(cnt==0){
cout<<"The average of "<<cnt<<" numbers is ";
cout<<"Undefined";
}
else{
cout<<"The average of "<<cnt<<" numbers is ";
if(t==0){
cout<<"Undefined";
}
else{
if(t/cnt<0&&t/cnt>-0.005){
cout<<fixed<<setprecision(2)<<0;
}
else{
cout<<fixed<<setprecision(2)<<(t/cnt);
}
}
}
return 0;
}
标签:f2,NULL,1054,平均值,int,0.005,include,cout 来源: https://www.cnblogs.com/wodeblog1982/p/16463680.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。