题意:根据条件判定哪些数是合法的,哪些是不合法的。求其中合法的数的平均值。

思路:字符串处理函数,考虑到最后输出的时候需要控制格式,因此选用scanf()和printf()。另外需要了解atof()函数,用的较多的是atoi(),但这里是浮点数的转换,所以不要搞错了。(两者都在头文件<stdlib.h>下)

代码:

#include <cstdio>
#include <cstring>
#include <cstdlib>//atof()
#include <cctype>//isalpha(ch)

bool judge(char str[])
{
    int len=strlen(str);
    ,pointPos=-;
    ;i<len;i++){
        if(str[i]=='.') {
            pointCnt++;
            pointPos=i;
        }
        if(isalpha(str[i])) return false;//如果含有字母
    }
    ) return false;//如果含有多个小数点
     && len--pointPos>) return false;//如果有一个小数点,但小数位数超过2位
    double tmp=atof(str);//到这一步,str已经是个合法的数了,还需判断是否在给定范围内
     || tmp>) return false;
    return true;
}

int main()
{
    //freopen("pat.txt","r",stdin);
    ;
    ];
    ;
    scanf("%d",&n);
    ;i<n;i++){
        scanf("%s",str);
        bool isLegal=judge(str);
        if(isLegal){
            validCnt++;
            sum+=atof(str);
        }else
            printf("ERROR: %s is not a legal number\n",str);
    }//for
    ) printf("The average of 0 numbers is Undefined\n");
    ) printf("The average of 1 number is %.2f\n",sum);
    else printf("The average of %d numbers is %.2f\n",validCnt,sum/validCnt);
    ;
}

1108 Finding Average的更多相关文章

  1. 1108 Finding Average (20 分)

    1108 Finding Average (20 分) The basic task is simple: given N real numbers, you are supposed to calc ...

  2. PAT 1108 Finding Average [难]

    1108 Finding Average (20 分) The basic task is simple: given N real numbers, you are supposed to calc ...

  3. pat 1108 Finding Average(20 分)

    1108 Finding Average(20 分) The basic task is simple: given N real numbers, you are supposed to calcu ...

  4. PAT (Advanced Level) 1108. Finding Average (20)

    简单模拟. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #i ...

  5. PAT甲题题解-1108. Finding Average (20)-字符串处理

    求给出数的平均数,当然有些是不符合格式的,要输出该数不是合法的. 这里我写了函数来判断是否符合题目要求的数字,有点麻烦. #include <iostream> #include < ...

  6. PAT 1108 Finding Average

    The basic task is simple: given N real numbers, you are supposed to calculate their average. But wha ...

  7. PAT Advanced 1108 Finding Average (20 分)

    The basic task is simple: given N real numbers, you are supposed to calculate their average. But wha ...

  8. 【PAT甲级】1108 Finding Average (20分)

    题意: 输入一个正整数N(<=100),接着输入一行N组字符串,表示一个数字,如果这个数字大于1000或者小于1000或者小数点后超过两位或者压根不是数字均为非法,计算合法数字的平均数. tri ...

  9. PAT甲级——1108.Finding Average (20分)

    The basic task is simple: given N real numbers, you are supposed to calculate their average. But wha ...

随机推荐

  1. mysql 导入表数据中文乱码

    方法一: 先在命令行设置为utf8,再导入 1. use database_name; 2. set names utf8; (或其他需要的编码) 3. source example.sql (sql ...

  2. WebService是什么?以及工作原理

    WebService 就是一个应用程序,向外界暴露出公开的API使别人其能在WEB对其进行远程调用,具有跨平台和跨语言的等特点,采用Internet的Http协议进行客户端与服务器之间的交互 由XML ...

  3. 51nod 1043 数位dp

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1043 1043 幸运号码 基准时间限制:1 秒 空间限制:131072 ...

  4. UI- UINavigationController UITabBarController 使用总结

    #pragma mark - UINavigationController UITabBarController  ====================================== 控制器 ...

  5. 由PostgreSQL的区域与字符集说起(转)

    转自:http://blog.chinaunix.net/uid-354915-id-3502551.html 由PostgreSQL的区域与字符集说起 一.PostgreSQL的区域区域属性有以下几 ...

  6. Android Issue分析方法(用anr来说明)

    Log的产生大家都知道 , 大家也都知道通过DDMS来看log , 但什么时候会产生log文件呢 ?一般在如下几种情况会产生log文件 . 1,程序异常退出 , uncaused exception ...

  7. 持久层框架:MyBatis 3.2(2)

    每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得.SqlSessi ...

  8. 《锋利的jQuery》读书笔记(动画)

    1.show()和hide() 实质就是改变当前DOM对象的display为block.none或inline-block(取决于之前的display),如下: $("element&quo ...

  9. 利用Python进行文章特征提取(一)

    # 文字特征提取 词库模型(bag of words) 2016年2月26,星期五 # 1.词库表示法 In [9]: # sklearn 的 CountVectorizer类能够把文档词块化(tok ...

  10. volatile与const综合分析

    在C/C++ 编程中,volatile与const关键字一向容易让人困惑,当然,新手可能从来不用,但是 在高质量和稳健的程序中,这两个关键字 是相当重要的. 相比const,volatile关键字的发 ...