当前位置: 首页 > 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.dtcms.com/a/336855.html

相关文章:

  • element-plus:el-tree ref初始化异常记录
  • 【前端面试题】JavaScript 核心知识点解析(第一题到第三十题)
  • MQTT(轻量级消息中间件)基本使用指南
  • 套接字超时控制与服务器调度策略
  • JavaScript基础语法three
  • 时序数据库 Apache IoTDB:从边缘到云端Apache IoTDB 全链路数据管理能力、部署流程与安全特性解读
  • UTMatrix VS VideoLingo 到底哪个好?
  • 在openEuler系统中如何查看文件夹下每个文件的大小
  • 从零到GPT:Transformer如何引领大模型时代
  • 基于C语言实现的HRV分析方法 —— 与Kubios和MATLAB对比
  • 力扣70:爬楼梯
  • Java基础(九):Object核心类深度剖析
  • 【Linux指南】gcc/g++编译器:从源码到可执行文件的全流程解析
  • DELL服务器 R系列 IPMI的配置
  • Linux 编译器 gcc 与 g++
  • Linux磁盘阵列
  • 开源Verilog仿真即波形模拟工具iVerilog初步教程
  • 香港数据合集:建筑物、手机基站、POI、职住数据、用地类型
  • Java 中表示数据集的常用集合类
  • 【快速解决】Redis配置问题以及解决方法
  • 世界模型之自动驾驶
  • 实战架构思考及实战问题:Docker+‌Jenkins 自动化部署
  • 基于Android的随身小管家APP的设计与实现/基于SSM框架的财务管理系统/android Studio/java/原生开发
  • Rust 教程之简介000
  • 【网络安全实验报告】实验六: 病毒防护实验
  • Rust 异步中的 Waker
  • reGeorg、dnscat2--安装、使用
  • moe并行
  • 【Linux系统】进程间通信:System V IPC——消息队列和信号量
  • 灯哥FOC笔记(3) --FOC开环程序原理