#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>
using namespace std;
//stoi -> 将字符串转换整数//stof -> 将字符串转换成浮点数//当stof将一个不是数字的字符串转换成浮点数时,就会报异常。此时,我们可以选择用try...catch来进行处理intmain(){
int n;
double sum = 0.0;
int cnt = 0;
scanf("%d",&n);
while(n --){
string number;
//代表该数字是合法的bool flag = true;
double result = 0.0;
size_t bit;
cin >> number;
try{
//代表转换时,用了字符串的多少位
bit = 0;
result = stof(number,&bit);
}catch(...){ //...代表任意类型的异常//如果转换时,出现了异常,代表该数字不合法。
flag = false;
}
//如果没全用完//代表:类似于123.abc这种情况,此时也是不合法的if(bit != number.size()){
flag = false;
}
//不满足范围,此时不合法if(result < -1000 || result > 1000){
flag = false;
}
//根据小数点位置,判断是否合法int k = number.find('.');
if(k != -1 &&number.size() - k > 3){
flag = false;
}
if(flag){
sum += result;
cnt++;
}else{
printf("ERROR: %s is not a legal number\n",number.c_str());
}
}
if(cnt > 1){
printf("The average of %d numbers is %.2lf\n",cnt,sum/cnt);
}elseif(cnt == 1){
printf("The average of 1 number is %.2lf\n",sum);
}else{
printf("The average of 0 numbers is Undefined\n");
}
return0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现