top1编程
← 返回题目
题解

年龄与疾病

1 条题解

  • 0
    @ 2026-8-4 10:39:06

    解题思路

    把年龄按四段分类统计人数:0-18、19-35、36-60、61以上。最后每一段用人数 ÷ 总人数 × 100 算百分比,保留两位小数输出。

    用 printf("%.2f%%") 输出百分比,注意 %% 才能输出百分号。

    参考代码

    #include <cstdio>
    using namespace std;
    
    int main() {
        int n;
        scanf("%d", &n);
        int c1 = 0, c2 = 0, c3 = 0, c4 = 0;
        for (int i = 0; i < n; i++) {
            int a;
            scanf("%d", &a);
            if (a <= 18) c1++;          // 0-18岁
            else if (a <= 35) c2++;     // 19-35岁
            else if (a <= 60) c3++;     // 36-60岁
            else c4++;                  // 61岁以上
        }
        // 输出百分比,保留2位小数,%%输出百分号
        printf("%.2f%%\n", c1 * 100.0 / n);
        printf("%.2f%%\n", c2 * 100.0 / n);
        printf("%.2f%%\n", c3 * 100.0 / n);
        printf("%.2f%%\n", c4 * 100.0 / n);
        return 0;
    }
    

    复杂度分析

    循环 n 次,时间复杂度 O(n),额外空间复杂度 O(1)。

    • 1