1054 求平均值 (20 分)(测试点3分析)

2023-10-30

本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。
输入格式:

输入第一行给出正整数 N(≤100)。随后一行给出 N 个实数,数字间以一个空格分隔。

输出格式:

对每个非法输入,在一行中输出 ERROR: X is not a legal number,其中 X 是输入。最后在一行中输出结果:The average of K numbers is Y,其中 K 是合法输入的个数,Y 是它们的平均值,精确到小数点后 2 位。如果平均值无法计算,则用 Undefined 替换 Y。如果 K 为 1,则输出 The average of 1 number is Y。

输入样例 1:

7
5 -3.2 aaa 9999 2.3.4 7.123 2.35

输出样例 1:

ERROR: aaa is not a legal number
ERROR: 9999 is not a legal number
ERROR: 2.3.4 is not a legal number
ERROR: 7.123 is not a legal number
The average of 3 numbers is 1.38

输入样例 2:

2
aaa -9999

输出样例 2:

ERROR: aaa is not a legal number
ERROR: -9999 is not a legal number
The average of 0 numbers is Undefined

相信这个题很多人都卡在测试点三上了,其实贼简单,一个超级大坑
当count是1的时候,语句中不是numbers而是number!!我大意了啊,没有发现气死了

#include <iostream>
#include <string>
#include<algorithm>
#include<bits/stdc++.h>
#include<stack>
#include<set>
#include <vector>
#include <map>
#include<queue>
#include<deque>
#include<cctype>
#include<unordered_set>
using namespace std;
int main(){ 
    int n;
    cin>>n;
    int count=0;
    
    double sum=0;
    while(n--){
    	string s;
    	cin>>s;
    	int count2=0;
    	int flag=0;
    	for(int i=0;i<s.size();i++){
    		if(s[i]=='-'&&i==0){
    			continue;
			}
    		if(s[i]=='.'){
    			count2++;
			}
    		if(!isdigit(s[i])&&s[i]!='.'){
    			flag=1;
    			cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
    			break;
			}
		}
		if(flag){
			continue;
		}
		if(count2>1){
			cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
			continue;
		}
		int pos=s.find(".");
		if(pos!=-1){
			if(pos==0){
				cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
		    	continue;
			}
			string s1=s.substr(pos);
	     	if(s1.size()>3){
		    	cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
		    	continue;
	    	}
		}
		if(stod(s)<-1000||stod(s)>1000){
			cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
			continue;
		}
		count++;
		sum+=stod(s);
	}
	if(count){
		if(count==1){
			cout<<"The average of "<<count<<" number is ";
		printf("%.2f",sum/count);
		}
		else {
			cout<<"The average of "<<count<<" numbers is ";
		printf("%.2f",sum/count);
		}
	}
	else{
		cout<<"The average of "<<count<<" numbers is Undefined";
	}
	return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1054 求平均值 (20 分)(测试点3分析) 的相关文章

  • C++模板与泛型编程:模板特例化

    文章目录 模板特例化 定义函数模板特例化 函数重载与模板特例化 类模板特例化 类模板部分特例化 特例化成员而不是类 模板特例化 编写单一模板 使之对任何可能的模板实参都是最合适的 都能实例化 这并不总是能办到 在某些情况下 通用模板的定义对
  • 群晖 NAS 十分精准的安装 Mysql 远程访问连接

    文章目录 1 安装Mysql 2 安装phpMyAdmin 3 修改User 表 4 本地测试连接 5 安装cpolar 6 配置公网访问地址 7 固定连接公网地址 转载自cpolar极点云文章 群晖NAS 安装 MySQL远程访问连接 群
  • 讨论BUCK、BOOST、BUCK-BOOST电路CCM模式下的设计参数计算

    BUCK BUCK电路的设计技术指标要求 要求工作于电感电流连续工作模式 输入直流电压 V 输出直流电压 V 最大输出电流 A 最小输出电流 输出电压纹波峰峰值 开关频率 主电路参数设计目标 电感参数设计 求得电感量与最大有效值电流 最大峰

随机推荐

  • 国外机器视觉解决方案供应商Top 10

    由制造行业的杂志 Manufacturing Tech Insights 2016年评选的机器视觉解决方案供应商Top 10名单如下 Cognex 提供强大的机器视觉软件解决方案 高效的设备防错与故障检测监测供应商 Datalogic 为了
  • CSP-J初赛模拟试题及答案

    请点击 关注 收藏 本博客免费为你获取精彩知识分享 有惊喜哟 一 单项选择题 共15题 每题2分 共计30分 每题有且仅有一个正确选项 1 以下关于CSP J S的描述错误的是 A 参加CSP S J两组两轮认证均须在网上注册报名 未注册者
  • echarts折线图鼠标悬浮竖线_设置Echarts鼠标悬浮样式

    在option下 tooltip内添加以下代码 本文在后台进行传值 也就是其中的viewstate tooltip show true trigger axis show true default true showDelay 0 显示延时
  • FastDFS文件传输系统

    FastDFS是用c语言编写的一款开源的分布式文件系统 它是由淘宝资深架构师余庆编写并开源 FastDFS专为互联网量身定制 充分考虑了冗余备份 负载均衡 线性扩容等机制 并注重高可用 高性能等指标 使用FastDFS很 容易搭建一套高性能
  • chatGPT的到来,是否意味新时代的来临

    chatGPT是一种人工智能技术驱动的自然语言处理工具 是一种基于语言对话场景的语言模型 它使用了Transformer神经网络架构 也是GPT 3 5架构 功能具备上知天文下知地理 还可以进行撰写邮件 视频脚本 文案 翻译 代码等任务 由
  • 二叉树最近公共祖先

    给定一颗二叉树以及两个节点 查找两个节点最近的公共祖先 有可能公共祖先是两个节点中的其中一个 比如给定D E两个节点 其最近的公共祖先为B 非递归方式 层次遍历找到两个节点 遍历过程中 将每个节点以及它的父节点放到Map中存起来 需要使用到
  • 软件测试程序员需要掌握哪些理论知识

    一 软件测试理论知识 这个必备 当然 有些基本概念我都不清楚 所以 有时间 我也得去学习 复习下软件测试理论 这部分包括 软件测试基础理论和方法 例如软件生命周期 测试用例编写方法 软件测试原则 软件测试管理相关技术 软件各个阶段评审 软件
  • pppd详解_Linux 使用pppd和ppp程序进行3G/4G拨号

    试验环境 Linux marsboard 3 4 90 9 SMP PREEMPT Thu Mar 3 18 28 43 CST 2016 armv7l armv7l armv7l GNU Linux 注 A20核心板 通讯模块 加载成tt
  • ssm+java计算机毕业设计网络安全知识学习系统d85o6(程序+lw+源码+远程部署)

    项目运行 项目含有源码 见文末 文档 程序 数据库 配套开发软件 软件安装教程 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe M
  • Can you solve this equation?(二分查找的简单应用)

    Can you solve this equation Time Limit 1000MS Memory Limit 32768KB 64bit IO Format I64d I64u Submit Status Desc
  • Missing library: xdoclet-1.2.1.jar.的解决办法

    在eclipse中右击静态工程文件 点击Properties出现 错误原因是缺少xdoclet 1 2 1 jar包 在此地址可以下载 XDoclet Browse xdoclet 1 2 1 at SourceForge net 下载好后
  • 访问修饰符的权限

    浅谈C 中的访问修饰符权限 private protected public internal internal protected protetec private 1 private 1 private修饰的 同一个类中的成员 没有st
  • vector的使用及模拟实现(c++)

    一 STL概述 STL StandardTemplateLibrary 标准模板库 是惠普实验室开发的一系列软件的统称 现在主要出现在c 中 但是在引入c 之前该技术已经存在很长时间了 STL从广义上分为 容器 container 算法 a
  • GD32F103 USB 虚拟U盘实验一(内部Flash)

    这个直接抄官网的 官网是96M这里我改成72M 要注意把 rcu usb clock config RCU CKUSB CKPLL DIV1 5 这里分频 use HXTAL XD series CK HXTAL 8M CL series
  • 如何在Vim中更改颜色和主题

    大家好 我是良许 Vim是我们在Linux中非常常用的一款文本编辑器 Vim 是一款免费 开源的文本编辑器 它的功能和许多其他的文本编辑器大致相同 比如 Sublime 和 Notepad Vim既可以在命令行中执行 也可以在图形界面中操作
  • 解决:在python+selenium账号脚本登陆时,使用qq账号密码登陆百度账号出现的问题

    原始代码 def test loginBtn self 定位并点击登录按钮 log info 定位并点击登录按钮 self driver find element by xpath id u1 a 7 click log info 点击登录
  • QT设置标签显示位置

    QT设置标签显示位置 首先在mainwindow h文件的私有对象下声明标签 定义标签 QLabel chanel1 实现函数 关于图像显示的控件 tr里面可写可不写 chanel1 new QLabel tr chanel1 gt set
  • 故障树定性分析一定要严谨

    故障树分析主要分为定性分析和定量分析两大部分 定量分析的前提是需要明确各底事件的分布函数 故障率或故障发生概率等相关信息 而这些信息往往很难准确获取 定性分析却没有这些限制 因此应用范围更为广泛 定性分析通常包括两个部分 最小割集提取以及结
  • Android插件化资源的使用及动态加载 附demo

    http blog csdn net yulong0809 article details 59489396
  • 1054 求平均值 (20 分)(测试点3分析)

    本题的基本要求非常简单 给定 N 个实数 计算它们的平均值 但复杂的是有些输入数据可能是非法的 一个 合法 的输入是 1000 1000 区间内的实数 并且最多精确到小数点后 2 位 当你计算平均值的时候 不能把那些非法的数据算在内 输入格