1054 求平均值 (20 分)


分析:这个题乍一看并不难,但是丢分的点还是挺多的。
1.要注意只有一个小数点
2.小数点不能放在首位,而且首位是负号的话不能只有这一位。
3.每位只能是数字,且小数点后只有两位,并且总的绝对值小于1000.
4.输出的时候注意如果只有一个数为正确的 是 number 如果是两个及以上 是numbers(注意审题)
代码如下:

#include<string>
#include<cmath>
using namespace std;
int pd(string s) {int key = 0;     //记录小数点int m = 0;      //记录小数位数if (!(s[0] == '-'&&s.length()>1) && !isdigit(s[0]))          //第一位必为数字或者负号(不能只有负号)return 0;for (int i = 1; i < s.length(); i++) {if (isdigit(s[i])) {if (key) m++;         //小数位计数器}else if (s[i] == '.') {key++;        //开启计数器if (key == 2)  //只能有一个小数点return 0;}else                 //出现其他符号返回0return 0;}if (m <= 2 && abs(atof(s.c_str())) <= 1000)           //必须保证在题目范围内return 1;return 0;
}
int main() {int n, count = 0;double t, sum = 0;string str;cin >> n;while (n--) {cin >> str;if (pd(str)) {count++;sum += atof(str.c_str());}else {cout << "ERROR: " << str << " is not a legal number" << endl;}}cout << "The average of " << count;if (count == 1)                        //看清题意cout << " number is ";elsecout << " numbers is ";if (count)printf("%0.2lf", (double)sum / count);elsecout << "Undefined";return 0;
}

PTA 1054 求平均值 (c++ 代码+分析)相关推荐

  1. PTA 1054 求平均值 (20 分)

    文章目录 code1 18分 code2 20分 注意点 code1 18分 #include<iostream> #include<string.h> using names ...

  2. 【Python】1054 求平均值(Python异常处理练习)

    1. 题目 2. 代码 重坑,读题不仔细,导致耗时多. 题目中合法数字当只用一个的时候,输出的结果中的是number,而不是numbers # https://pintia.cn/problem-se ...

  3. 1054. 求平均值 (20)

    1054. 求平均值 (20)本题的基本要求非常简单:给定N个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的.一个"合法"的输入是[-1000,1000]区间内的实数, ...

  4. 【最优解法】1054 求平均值 (20分)_31行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 本题的基本要求非常简单:给定 N 个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的.一个" ...

  5. 1054 求平均值(PAT乙级 C++)

    题目 本题的基本要求非常简单:给定 N 个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的.一个"合法"的输入是 [−1000,1000] 区间内的实数,并且最多精确到小 ...

  6. 1054. 求平均值

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

  7. PAT 乙级 1054. 求平均值 (20) Java版

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

  8. 【PAT乙级】1054 求平均值 (20 分)

    题目地址 测试点 2:k==1 number没有s 测试点 3:12. 这种是合法的 #include<cstdio> #include<iostream> #include& ...

  9. 12-1054. 求平均值

    1054. 求平均值 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题的基本要求非常简单:给定N个实 ...

最新文章

  1. MsSQL的字段类型
  2. 深入浅出全面解析RDMA
  3. 多线程:同步和异步的优缺点比较
  4. 被围绕的区域(dfs)
  5. python如何连续打印_Python实现批量打印功能
  6. 牛客练习赛69E-子串【树状数组】
  7. ajax传值controller怎么写,ajax如何传递参数给controller
  8. 如果风 知道 ... 如果云 知道 ...
  9. java 一些容易忽视的小点-控制语句
  10. php larver 导出e,laravel5 Excel导出
  11. 专为控制打印设计的CSS样式
  12. 性能测试流程(超级详细)
  13. java报告模板_JAVA报告模板.doc
  14. EyouCms1.0前台GetShell漏洞复现
  15. 基于STM32的频率计Proteus仿真教程
  16. 解决对表空间没有权限的问题
  17. 小米运动蓝牙耳机重新配对_小米运动蓝牙耳机怎么连接手机
  18. SimpleFOC(二)—— 快速入门 (开环控制)
  19. 读书笔记:程序员的数学 概率统计
  20. 用炒菜的思路搞定你的复杂分析

热门文章

  1. MySQL的存储引擎
  2. 基于opencv的行人检测(支持图片,视频)
  3. 解决windows无法启动MySQL服务问题
  4. MYSQL时间戳函数
  5. android 双向通话实时,实时通话
  6. 图神经网络也能用作CV骨干模型,华为诺亚ViG架构媲美CNN、Transformer
  7. 为荣耀4c语言设置在哪里设置方法,华为荣耀6系统语言在哪里设置?
  8. app域名注册好不好?注册app域名有什么好处?
  9. Android5g手机排名,流畅度排名前五的安卓手机,全都支持5G,第一名无争议
  10. 案例分享:优秀团队的4个创新方法