1054 求平均值

易错点

  1. 变量名要看清楚
  2. 操作数组要谨慎

代码

#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;
}
posted @   qwasdasd  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示