题解
【入门】立定跳远成绩求解
1 条题解
-
0
解题思路
题目要求分别计算男生和女生的立定跳远平均成绩。输入以 0 表示结束。
思路:
- 循环读入男生的成绩,遇到 0 停止,同时记录人数
- 再循环读入女生的成绩,遇到 0 停止,记录人数
- 分别累加求平均分
- 保留 1 位小数输出
为什么遇到 0 就停? 题目规定 0 是结束标志,表示这一组数据读完了。
注意:平均分 = 总分 ÷ 人数,人数就是读到 0 之前的成绩个数。
举例:男生 157 154 159 160,平均 (157+154+159+160)÷4 = 157.5
参考代码
#include <iostream> #include <iomanip> using namespace std; int main() { int a[100], b[100], x = 0, y = 0; while (cin >> a[x] && a[x] != 0) x++; // 男生,0 结束 while (cin >> b[y] && b[y] != 0) y++; // 女生,0 结束 double man = 0, woman = 0; for (int i = 0; i < x; i++) man += a[i]; for (int i = 0; i < y; i++) woman += b[i]; man = man / x; woman = woman / y; cout << fixed << setprecision(1) << man << " " << woman; return 0; }复杂度分析
- 时间复杂度:O(N),读入并累加
- 空间复杂度:O(N),存成绩数组
- 1