1108 Finding Average

#include<iostream>

#include<string>

#include<cstring> // strlen()

#include<cstdio>

#include<iomanip>

using namespace std;

int main(){

int n, cnt = 0;

char a[50], b[50];

cin >> n;

double tmp = 0.0, sum = 0.0;

for(int i = 0; i < n; i++){

cin >> a;

// 使用sscanf将字符串转换为double形式

if(sscanf(a, "%lf", &tmp) != 1){

cout << "ERROR: " << a << " is not a legal number" << endl;

continue;

}

// 使用sprintf将tmp格式转换为两位小数

sprintf(b, "%.2f", tmp);

int flag = 0;

int len = strlen(a);

// 检查原始字符串和格式化后的字符串是否一致

for(int j = 0; j < len; j++){

if(a[j] != b[j]){

flag = 1;

break;

}

}

// 如果格式不一致或超出范围

if(flag != 0 || tmp < -1000 || tmp > 1000){

cout << "ERROR: " << a << " is not a legal number" << endl;

continue;

} else {

sum += tmp;

cnt++;

}

}

// 输出结果

if(cnt == 0){

cout << "The average of 0 numbers is Undefined" << endl;

} else if(cnt == 1){

cout << "The average of 1 number is "

<< fixed << setprecision(2) << sum << endl;

} else {

cout << "The average of " << cnt << " numbers is "

<< fixed << setprecision(2) << sum / cnt << endl;

}

return 0;

}

相关推荐
仰泳的熊猫2 小时前
题目2570:蓝桥杯2020年第十一届省赛真题-成绩分析
数据结构·c++·算法·蓝桥杯
无极低码5 小时前
ecGlypher新手安装分步指南(标准化流程)
人工智能·算法·自然语言处理·大模型·rag
软件算法开发6 小时前
基于海象优化算法的LSTM网络模型(WOA-LSTM)的一维时间序列预测matlab仿真
算法·matlab·lstm·一维时间序列预测·woa-lstm·海象优化
Thera7776 小时前
C++ 高性能时间轮定时器:从单例设计到 Linux timerfd 深度优化
linux·开发语言·c++
罗超驿6 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist
superior tigre6 小时前
22 括号生成
算法·深度优先
君义_noip7 小时前
信息学奥赛一本通 1952:【10NOIP普及组】三国游戏 | 洛谷 P1199 [NOIP 2010 普及组] 三国游戏
c++·信息学奥赛·csp-s
努力也学不会java7 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试
旖-旎8 小时前
二分查找(x的平方根)(4)
c++·算法·二分查找·力扣·双指针