【PAT乙级】1054 求平均值 (20 分)
题目地址
测试点 2:k==1 number没有s
测试点 3:12. 这种是合法的
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int n;
string s;
bool check(string s)
{if( (s[0]=='+'||s[0]=='-') && s.size()==1) return false;if(s[0]=='+'||s[0]=='-') s=s.substr(1);int k=0,index=0;for(int i=0;i<s.size();i++){if(s[i]=='.') k++,index=i+1;else if(s[i]<'0'||s[i]>'9') return false;}if(k>=2) return false;if(k==0) return true;if( (s.size()-index)>2 ) return false;return true;
}
int main(void)
{cin>>n;double sum=0;int cnt=0;bool flag=false;for(int i=0;i<n;i++){cin>>s;if(check(s)) {double temp=stod(s);if(temp>=-1000.0&&temp<=1000.0) sum+=temp,cnt++,flag=true;else printf("ERROR: %s is not a legal number\n",s.c_str());}else printf("ERROR: %s is not a legal number\n",s.c_str());}if(flag&&cnt!=1) printf("The average of %d numbers is %.2lf\n",cnt,sum/cnt);else if(flag) printf("The average of %d number is %.2lf\n",1,sum);else printf("The average of 0 numbers is Undefined");return 0;
}
#include<bits/stdc++.h>
using namespace std;
int cnt,t;
double sum;
bool check(string s)
{string temp=s;int k=0;if(temp[0]=='-'||temp[0]=='+') temp=temp.substr(1);for(int i=0;i<temp.size();i++){if(temp[i]=='.') k++;else if(temp[i]<'0'||temp[i]>'9') return false;}if(k>1) return false;if(k){int l=temp.find('.');int len=temp.size()-l-1;if(len>2) return false;}double a=stod(s);if(a>=-1000.0&&a<=1000.0) return true;else return false;
}
int main(void)
{cin>>t;while(t--){string s; cin>>s;if(check(s)) cnt++,sum+=stod(s);else printf("ERROR: %s is not a legal number\n",s.c_str());}if(cnt>1) printf("The average of %d numbers is %.2lf",cnt,sum/cnt);else if(cnt==1) printf("The average of %d number is %.2lf",cnt,sum/cnt);else printf("The average of 0 numbers is Undefined");return 0;
}
【PAT乙级】1054 求平均值 (20 分)相关推荐
- PAT 乙级 1054. 求平均值 (20) Java版
本题的基本要求非常简单:给定N个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的.一个"合法"的输入是[-1000,1000]区间内的实数,并且最多精确到小数点后2位.当 ...
- 【最优解法】1054 求平均值 (20分)_31行代码AC
立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 本题的基本要求非常简单:给定 N 个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的.一个" ...
- PTA 1054 求平均值 (20 分)
文章目录 code1 18分 code2 20分 注意点 code1 18分 #include<iostream> #include<string.h> using names ...
- 1054. 求平均值 (20)
1054. 求平均值 (20)本题的基本要求非常简单:给定N个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的.一个"合法"的输入是[-1000,1000]区间内的实数, ...
- PAT乙级 1029 旧键盘 (20 分)
1029 旧键盘 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 原题链接 代码 #inc ...
- PAT乙级1028 人口普查 (20 分)
1028 人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 2 ...
- PAT乙级 1044 火星数字 (20分)
1044 火星数字 (20分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, ju ...
- PAT 乙级1072 开学寄语 (20分)
1072 开学寄语 (20分) 下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面.理发.整衣, ...
- PAT乙级_1068 万绿丛中一点红 (20 分)_python
题目: 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值.现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围 8 个相邻像素的 ...
最新文章
- java中打开文件显示_从java程序中打开任何文件
- 使用 Gatsby.js 搭建静态博客 EX 使用语雀发布到博客
- 「技术综述」基于弱监督深度学习的图像分割方法综述
- Ubuntu 16.04服务器版查看DHCP自动分配的IP、网关、DNS
- Eclipse项目启动不了
- 【Kotlin】抽象类 ( 声明 | 抽象类成员 | 抽象类继承 | 抽象方法覆盖 | 抽象方法实现 )
- 【python】队列——用顺序表实现队列操作
- Spring中的简单实现AOP小例子
- mysql性能测试工具msyqlslap_MySQL性能测试工具 mysqlslap
- spring-boot 添加http自动转向https
- linux复制文件夹 实例,linux复制文件夹与文件实例介绍linux操作系统 -电脑资料
- 项目中记录影响性能的缓慢数据库查询
- js获取request中的值_基于node.js的开发框架 — Koa
- mysql 缺省配置 崩溃_MySQL5.6初始配置调优_MySQL
- HDU1860 统计字符【水题+输入输出】
- 工作中最重要的个人品质--独立
- 15. 从远程库克隆
- 翻译Introduction+to+3D+Game+Engine+Design+Using+DirectX+9+and+CSharp
- 制作后台首页详细步骤
- oracle12c启动ODM,Oracle 12c impdp 导入ORA-17500: ODM err:Communication error on send 错误处理方法...
热门文章
- UVA11255 Necklace Burnside、组合
- JAVA常见的排序算法
- java socket 模拟im 即时通讯
- MySql 长时间读数据发生超时的异常 Mysql Reader Exception TimeOut expired
- 非常好的dllimport 文章--在 C# 中通过 P/Invoke 调用Win32 DLL
- javascript select option对象总结
- 蓝牙HCI剖析(三)
- 多重签名(Multisig)
- C++ Primer 5th笔记(chap 13 拷贝控制)交换操作
- 初等数论--同余--欧拉函数、欧拉定理、费马小定理