PAT 1054求平均值(20分) 您所在的位置:网站首页 jojo八漫画在哪里看免费 PAT 1054求平均值(20分)

PAT 1054求平均值(20分)

#PAT 1054求平均值(20分)| 来源: 网络整理| 查看: 265

目录

解题思路:

分层解析:

代码部分:

关于人为书写检测机制的技巧:

本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。

输入格式:

输入第一行给出正整数 N(≤100)。随后一行给出 N 个实数,数字间以一个空格分隔。

输出格式:

对每个非法输入,在一行中输出 ERROR: X is not a legal number,其中 X 是输入。最后在一行中输出结果:The average of K numbers is Y,其中 K 是合法输入的个数,Y 是它们的平均值,精确到小数点后 2 位。如果平均值无法计算,则用 Undefined 替换 Y。如果 K 为 1,则输出 The average of 1 number is Y。

输入样例 1:

7 5 -3.2 aaa 9999 2.3.4 7.123 2.35

输出样例 1:

ERROR: aaa is not a legal number ERROR: 9999 is not a legal number ERROR: 2.3.4 is not a legal number ERROR: 7.123 is not a legal number The average of 3 numbers is 1.38

输入样例 2:

2 aaa -9999

输出样例 2:

ERROR: aaa is not a legal number ERROR: -9999 is not a legal number The average of 0 numbers is Undefined 解题思路:

首先判断输入是否合法,具体有以下要求:

1.是实数;

2.范围在[-1000,1000]内 &&如果有小数点,小数至多两位;

其次,按照要求书写主函数,进行输出显示层面的编程;

分层解析:

1.是实数:

        首先,输入的就不一定为一个数,所以输入的数据类型就应该是字符数组;循环遍历这个数组,需要判断这3点来证明输入的字符数组是否可以转化为实数:

        只由数字、一个或零个负号、一个或零个小数点组成;

        判断方法为,在满足以上条件下,符合以上条件的字符数总数是否等于字符数组长度;

2.范围与小数位数:

        范围很好判断,在已经判断字符数组可以转化为实数之后,就可以用atof()函数来实现转化,从而判断范围;

        关于包括atof()在内的所有字符串转数字的函数及其相应用法,请参考以下连接:https://blog.csdn.net/bc202205/article/details/128433151?spm=1001.2014.3001.5501;

        小数位数:循环遍历数组,确定小数点的位置;通过求取小数点后有几个数组元素,就可以确定该字符数组所转化的实数是否满足小数位数的要求了;

代码部分:

函数代码实现如下:

#include #include using namespace std; bool isnumber(char a[], int len)//判断是否为实数; { int counts = 0, countdots = 0, countfu = 0; for (int i = 0; i < len; i++) { if (a[i] >= '0' && a[i] 1000 || atof(a) < -1000)) return false;//判断是否为范围内的实数; else//判断是否为2位小数以内的实数; { int pos = -1; if (isnumber(a, len)) { for (int i = 0; i < len; i++) if (a[i] == '.') pos = i; if (pos == -1) return true; else return len - pos - 1 > n; char a[100]; int counts = 0; double sum = 0; for (int i = 0; i < n; i++) { cin >> a; if (isfloat(a, strlen(a)) == false) cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有