top1编程
← 返回题目
题解

【入门】立定跳远成绩求解

1 条题解

  • 0
    @ 2026-7-31 14:48:19

    解题思路

    题目要求分别计算男生和女生的立定跳远平均成绩。输入以 0 表示结束。

    思路:

    1. 循环读入男生的成绩,遇到 0 停止,同时记录人数
    2. 再循环读入女生的成绩,遇到 0 停止,记录人数
    3. 分别累加求平均分
    4. 保留 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