当前位置: 首页 > news >正文

week2-[循环结构]找出正数

week2-[循环结构]找出正数

题目描述

给定 NNN 个整数A1,A2,…,ANA_1,A_2,\ldots,A_NA1,A2,,AN。请求出这 NNN 个数中有多少个数是正数,并求出这些正数的平均值。如果 A1,A2,…,ANA_1,A_2,\ldots,A_NA1,A2,,AN 不存在正数,那么输出 “None”(输出时不需要输出引号)。

输入格式

读入包括 222 行。第一行只有 111 个整数 NNN,表示数的个数。第二行包括 NNN 个整数 A1,A2,…,ANA_1,A_2,\ldots,A_NA1,A2,,AN

输出格式

输出只有 111 行。如果 A1,A2,…,ANA_1,A_2,\ldots,A_NA1,A2,,AN 不存在正数,那么输出 “None”(输出时不需要输出引号)。如果A1,A2,…,ANA_1,A_2,\ldots,A_NA1,A2,,AN 存在至少一个正数,那么输出用恰好一个空格隔开的 222 个数,第一个数表示正数的个数,第二个数表示正数的平均值(正数的平均值四舍五入保留 333 位小数输出)。

样例 #1

样例输入 #1

5
-5 -3 0 -8 -100

样例输出 #1

None

样例 #2

样例输入 #2

6
5 -2 8 3 -4 1

样例输出 #2

4 4.250

样例 #3

样例输入 #3

5
1 2 3 4 5

样例输出 #3

5 3.000

提示

样例解释1

−5,−3,0,−8,−100-5,-3,0,-8,-1005,3,0,8,100 中不存在正数,根据题目要求输出 “None”。

样例解释2

5,−2,8,3,−4,15,-2,8,3,-4,15,2,8,3,4,1 中的正数为 5,8,3,15,8,3,15,8,3,1444 个数,因此输出正数的个数 444 与正数的平均值 5+8+3+14=4.250\dfrac{5+8+3+1}{4}=4.25045+8+3+1=4.250

样例解释3

1,2,3,4,51,2,3,4,51,2,3,4,5 中所有数都是正数,因此输出正数的个数 555 与正数的平均值 1+2+3+4+55=3.000\dfrac{1+2+3+4+5}{5}=3.00051+2+3+4+5=3.000

数据范围

对于所有数据,1≤N≤100,−10000≤A,B≤100001 \le N \le 100, -10000 \le A,B \le 100001N100,10000A,B10000

1. 阅读题目

  • 输入:
    • 第 1 行:整数 NNN(表示有多少个数)。
    • 第 2 行:NNN 个整数 A1,A2,…,ANA_1,A_2,\ldots,A_NA1,A2,,AN
  • 输出:
    • 如果没有正数 → 输出 "None"
    • 如果有正数 → 输出两个数:
      1. 正数的个数
      2. 正数的平均值(四舍五入保留 3 位小数)

2. 分析问题

  • 遍历所有 NNN 个数:
    • 统计正数的数量 cnt
    • 累加正数的和 sum
  • 判断:
    • 如果 cnt == 0 → 输出 "None"
    • 否则 → 输出 cnt平均值 = sum / cnt
  • 平均值需要 四舍五入保留 3 位小数
    • 在 C++ 中可以用 cout << fixed << setprecision(3) 来处理。
  • 时间复杂度 O(N)O(N)O(N),空间复杂度 O(1)O(1)O(1)

3. C++ 代码实现

#include <iostream>
#include <iomanip>
using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(NULL);int N;cin >> N;int cnt = 0;       // 正数个数long long sum = 0; // 正数和(防止溢出,虽然题目范围也不会溢出)for (int i = 0; i < N; i++) {int x;cin >> x;if (x > 0) {cnt++;sum += x;}}if (cnt == 0) {cout << "None\n";} else {double avg = (double)sum / cnt;cout << cnt << " " << fixed << setprecision(3) << avg << "\n";}return 0;
}

✅ 总结:

  • 用循环统计 → cntsum
  • 分支判断 → 有正数输出结果,没有输出 "None"
  • 平均值格式化 → fixed << setprecision(3) 保留 3 位小数。
http://www.lryc.cn/news/624277.html

相关文章:

  • Vue3 中使用 Element Plus 完整指南
  • 从哲学(业务)视角看待数据挖掘:从认知到实践的螺旋上升
  • [数据结构] ArrayList 与 顺序表
  • 基于W55MH32Q-EVB 实现 HTTP 服务器配置 OLED 滚动显示信息
  • AI重塑商业格局:从多模态生成到智能应用的2025行业变革与机遇
  • 重温k8s基础概念知识系列四(服务、负载均衡和联网)
  • 视频讲解:CatBoost、梯度提升 (XGBoost、LightGBM)对心理健康数据、交通流量及股票价格预测研究
  • 【网络安全实验报告】实验七:简单的防火墙搭建实验
  • 数据结构(03)——线性表(顺序存储和链式存储)
  • HTTP协议-4-浏览器是怎么抉择HTTP版本的?
  • LeetCode 45.跳跃游戏II:贪心策略下的最少跳跃次数求解
  • 如何在windows下使用usbview查看USB设备信息
  • 局域网视频软件BeeWorks,内网顺畅沟通
  • CloudBase AI ToolKit + VSCode Copilot:打造高效智能云端开发新体验
  • 8.19 note
  • AI心理助手开发文档
  • 《Python学习之使用标准库:从入门到实战》
  • ST05跟踪MRP的运行(MD01)过程
  • Day8--滑动窗口与双指针--1004. 最大连续1的个数 III,1658. 将 x 减到 0 的最小操作数,3641. 最长半重复子数组
  • vite+react+antd,封装公共组件并发布npm包
  • 实践笔记-VSCode与IDE同步问题解决指南;程序总是进入中断服务程序。
  • RocksDB 解密可逆哈希:BijectiveHash的设计奥秘
  • Vue diff简介
  • Rust学习笔记(六)|Rust 中的常用集合(Vector、String、HashMap)
  • MiniMax Agent 上线 Market Place ,AI一键复制克隆网站
  • 部署 HAProxy 高可用
  • python 数据拟合(线性拟合、多项式回归)
  • Android Coil3视频封面抽取封面帧存Disk缓存,Kotlin(2)
  • 云计算:企业数字化转型的核心引擎
  • Kubernetes(K8s)常用命令全解析:从基础到进阶