热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PTA1108计算平均值

本题主要涉及输入数据的有效性验证,通过使用C语言中的sscanf和sprintf函数来实现数据的解析和格式化。

题目描述


给定一系列数字字符串,要求计算所有有效数字的平均值,并对无效输入进行错误提示。


分析


解决该问题的关键在于如何正确地识别并处理输入的数据。主要步骤包括:读取输入,使用 sscanf 将字符串转换为浮点数,再用 sprintf 将浮点数格式化回字符串以检查其有效性。如果输入的数字超出范围(-1000 到 1000)或格式不正确,则应输出错误信息;否则,将其计入总和和计数器中,最后根据计数器的值输出相应的平均值或错误信息。


代码示例


#include 

int main() {
int n;
scanf("%d", &n);
double sum = 0.0;
int count = 0;
char input[105], formatted[105];
while (n--) {
scanf("%s", input);
double value;
if (sscanf(input, "%lf", &value) == 1 && value >= -1000 && value <= 1000) {
sprintf(formatted, "%.2f", value);
if (strcmp(input, formatted) == 0) {
sum += value;
count++;
} else {
printf("ERROR: %s is not a legal number\n", input);
}
} else {
printf("ERROR: %s is not a legal number\n", input);
}
}
if (count == 0) {
printf("The average of 0 numbers is Undefined\n");
} else if (count == 1) {
printf("The average of 1 number is %.2f\n", sum);
} else {
printf("The average of %d numbers is %.2f\n", count, sum / count);
}
return 0;
}

推荐阅读
author-avatar
123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有