1108. Finding Average (20)
来源:互联网 发布:c语言写幻灯相册 编辑:程序博客网 时间:2024/05/16 10:50
一个数字一旦出现以下几种情况就不合法:
- 出现小数点、数字、负号以外的符号;
- 小数点多于一个;
- 负号多于一个;
- 小数部分位数多于两位;
- 数字绝对值大于1000。
#define _CRT_SECURE_NO_WARNINGS#include <cstdio>#include <cstdlib>#include <cctype>#include <cstring>#include <cmath>double convert(char str[]);int main(void){char str[100];double result, sum = 0;int cnt = 0, i, N;scanf("%d", &N);for (i = 0; i < N; i++) {scanf("%s", str);result = convert(str);if (result >= -1000 && result <= 1000) {sum += result;cnt++;}else {printf("ERROR: %s is not a legal number\n", str);}}if (cnt == 0) {puts("The average of 0 numbers is Undefined");}else if (cnt == 1) {printf("The average of 1 number is %.2lf\n", sum);}else {printf("The average of %d numbers is %.2lf\n", cnt, sum / cnt);}return 0;}double convert(char str[]){double result = 0.0;int dotcnt = 0, rightcnt = 1, i;bool negative = false, legal = true;for (i = 0; str[i] != '\0'; i++) {if (str[i] == '-') {if (i == 0) {negative = true;}else {legal = false;break;}}else if (isdigit(str[i])) {if (dotcnt) {result += pow(0.1, rightcnt++) * (str[i] - '0');}else {result = result * 10 + str[i] - '0';}if (rightcnt > 3) {legal = false;break;}}else if (str[i] == '.') {if (dotcnt) {legal = false;break;}else {dotcnt++;}}else {legal = false;break;}}if (legal) {if (negative) {result *= -1;}}else {result = -100000;}return result;}
0 0
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- 1108. Finding Average (20)
- PAT_A 1108. Finding Average (20)
- [pat]1108. Finding Average (20)
- PAT 1108. Finding Average (20)
- pat 1108. Finding Average (20)
- 1108. Finding Average (20)段错误
- URI和URL
- [转]动态更新Toolbar Menu以及Menu中同时显示文字和图标
- 【Android】OkHttp安装与使用
- outlook邮箱日历华为手机与电脑同步设置
- 通过XShell链接虚拟机的CentOS
- 1108. Finding Average (20)
- Eigen库求取最大特征值和特征向量
- Angular - 语义化版本控制规范(SEMVER)- 没有 Angular 3 ,Angular 4 计划2017年3月发布
- CentOS虚拟机NAT方式无法上网解决方法
- Hibernate5.2.6使用schemaExport报错以及创建表后数据库中不显示
- StAX处理xml(Stream API for XML)
- SPFA模版
- Java操作Excel表格
- Android中的文件存储