2342. Plus Minus
1000ms
256MB
简单
循环
题目描述
给定一个大小为 $n$ 的整数数组,请计算其中正数、负数和零的个数占总元素个数的比例。
以保留小数点后 6 位的小数格式,分别在独立的一行中输出每个占比。
输入格式
- 第一行包含一个正整数 $n$ ($0 < n \le 100$),表示数组的大小。
- 第二行包含 $n$ 个空格分隔的整数 $arr[i]$ ($-100 \le arr[i] \le 100$)。
输出格式
- 共三行,每行输出一个保留 6 位小数的浮点数:
- 第一行:正数的比例。
- 第二行:负数的比例。
- 第三行:零的比例。
样例 1
输入 (Input)
6 -4 3 -9 0 4 1
输出 (Output)
0.500000 0.333333 0.166667
样例说明
- $0 < n \le 100$
- $-100 \le arr[i] \le 100$
- **样例解释**:
数组中共有 6 个元素,其中有 3 个正数(`3, 4, 1`),2 个负数(`-4, -9`),1 个零(`0`)。
- 正数占比:$3/6 = 0.500000$
- 负数占比:$2/6 = 0.333333$
- 零占比:$1/6 = 0.166667$
- **算法提示**:
单次遍历数组,使用三个计数器分别统计正数、负数和零的个数。最后用每个计数器的值除以 $n$。
在除法运算时,需要将计数器和 $n$ 转换为浮点数类型(如 `double`),以防发生整除(例如整数相除 $3/6$ 在 C++ 中会直接舍弃小数得到 0)。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功