1108 Finding Average
题意:根据条件判定哪些数是合法的,哪些是不合法的。求其中合法的数的平均值。
思路:字符串处理函数,考虑到最后输出的时候需要控制格式,因此选用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的更多相关文章
- 1108 Finding Average (20 分)
1108 Finding Average (20 分) The basic task is simple: given N real numbers, you are supposed to calc ...
- PAT 1108 Finding Average [难]
1108 Finding Average (20 分) The basic task is simple: given N real numbers, you are supposed to calc ...
- pat 1108 Finding Average(20 分)
1108 Finding Average(20 分) The basic task is simple: given N real numbers, you are supposed to calcu ...
- PAT (Advanced Level) 1108. Finding Average (20)
简单模拟. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #i ...
- PAT甲题题解-1108. Finding Average (20)-字符串处理
求给出数的平均数,当然有些是不符合格式的,要输出该数不是合法的. 这里我写了函数来判断是否符合题目要求的数字,有点麻烦. #include <iostream> #include < ...
- PAT 1108 Finding Average
The basic task is simple: given N real numbers, you are supposed to calculate their average. But wha ...
- PAT Advanced 1108 Finding Average (20 分)
The basic task is simple: given N real numbers, you are supposed to calculate their average. But wha ...
- 【PAT甲级】1108 Finding Average (20分)
题意: 输入一个正整数N(<=100),接着输入一行N组字符串,表示一个数字,如果这个数字大于1000或者小于1000或者小数点后超过两位或者压根不是数字均为非法,计算合法数字的平均数. tri ...
- PAT甲级——1108.Finding Average (20分)
The basic task is simple: given N real numbers, you are supposed to calculate their average. But wha ...
随机推荐
- JNI_Z_07_方法的操作(没有String类型的参数)_参数的传递方式
1. 2.VC6(CPP)的DLL代码: #include<stdio.h> #include "jniZ_TjniMethod02.h" JNIEXPORT void ...
- MFC--自定义CMFCTabCtrl的实现
在MFC实现桌面程序时,可能会用到TabView效果,我实现的是最基本的效果,如下图: 下面介绍详细的实现过程,如果需要效果更好看些,自行美化. 1. 创建自定义MFCTabCtrl类MyMFCTa ...
- python 正则表达式使用
正则表达式总结: python支持的字符和语法:. 匹配任意除换行符\n 之外的所有字符\ 转义字符 比如说要匹配的字符中含有 \ . * 等可以使用\转义 例如 \* \. \\[.....] 直接 ...
- 处理跨线程操作问题(使用Action和delegate或lambda表达式)
方法A: Action f = () => { txtProcess.Text = "开始更新程序.. ...
- Selenium学习笔记(1) - 自动化测试体系与原理
技术体系 基于代码的测试(Code-Based Testing) 基于协议的测试(Protocol-Based Testing) 基于界面的测试(GUI-Based Testing) 工作原理 基于代 ...
- Go-gin CORS 跨域中间件
原文:https://stackoverflow.com/questions/29418478/go-gin-framework-cors func CORSMiddleware() gin.Hand ...
- delete 与 delete []的区别
一. 针对类class,这两种方式的效果是不同的. 当你通过下列方式分配一个类对象数组: class A { private: char *m_cBuffer; int ...
- Linux系列—策略路由、ip rule、ip route
早期在管理Linux系统的网络时,常使用ifconfig及route之类的命令,不过如果你准备开始使用Linux强大的基于策略的路由机制,那么,就请不要使用这类工具了,因为这类工具根本无法用于功能强大 ...
- js区分字符串和数字,有时候需要将字符串转换成数字
js区分字符串和数字,有时候需要将字符串转换成数字 :parseInt
- springmvc的RESTful风格
springmvc对RESTful得支持RESTful架构,就是目前最流行得一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以挣得到越来越多网站的采用. RESTful(即Repres ...