1054

// PATn.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<iomanip>
#include<string>


using namespace std;

bool check_number(string &s)
{
    const string s_f = "0123456789-.";

    for (auto r : s)//判断是否含有除数字、负号、点号外的字符!
    {
        if (s_f.find(r) == string::npos)
            return false;
    }

    if (s.find_first_of('.') != s.find_last_of('.'))//判断是否含有多个字符‘.’
        return false;

    if (s.find('.')!=string::npos)
    {
        if ((s.size() - s.find('.')) > 3)//判断小数点的位数是否大于2!
            return false;
    }

    double tmp = stod(s);

    if (tmp < -1000 || tmp>1000)//判断是否越界!
        return false;

    return true;            //通过所有判断后则满足条件!
}

int main()
{
    
    unsigned n;
    cin >> n;

    string tmp;
    double sum=0;
    unsigned count = 0;
    for (unsigned i = 0; i < n; ++i)
    {
        cin >> tmp;
        if (check_number(tmp))
        {
            sum = sum + stod(tmp);
            count = count + 1;
        }
        else
        {
            cout << "ERROR: " << tmp << " is not a legal number" << endl;
        }
    }

    cout.setf(ios::fixed);
    if(count == 0)
        cout <<"The average of 0 numbers is Undefined";
    else
    {
        auto out = sum / (count*1.0);
        if (count == 1)
            cout << "The average of " << count << " number is " << setprecision(2) << out;
        else
            cout  << "The average of " << count << " numbers is " << setprecision(2)<<out;
    }
        
    system("pause");
    return 0;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 想想秋季时节高个子女生应该如何穿衣搭配才能突出自己魅力,获得更高的回头率呢?我想这个是每位高个子女生的烦恼。 看看...
    村哩味阅读 841评论 0 3
  • 又练习了一张,感觉比颖宝宝画的好一些,之前画了几张一直不懂头发的画法,感觉这一张头发画的基本出感觉了 放一张原图 ...
    大卷卷王阅读 441评论 0 4
  • 握在手中的法锤 它分量重啊 那小小的锤头上 不但凝聚着国家的意志 还有无数百姓的念想 山东聊城的法官 最近一锤下去...
    如磐阅读 803评论 0 3
  • 关于爱情这个话题,脑海中第一浮现的是蒋捷的《听雨》,王国维曾描写三种意境,但是我仍旧觉得不如蒋捷的词有连贯性: 少...
    单单阅读 416评论 2 5