top1编程
← 返回题目
题解

产品质检2

1 条题解

  • 0
    @ 2026-8-5 0:48:24

    解题思路

    读入 n 个质检分数和一个合格分数 s,把大于等于 s 的分数算作合格。先扫一遍数合格的个数并输出,再扫一遍把所有合格的分数按原顺序输出(用空格分隔)。

    参考代码

    #include <cstdio>
    using namespace std;
    
    int main() {
        int n;
        scanf("%d", &n);
        double a[1005];   // 存每个质检分数
        for (int i = 0; i < n; i++) scanf("%lf", &a[i]);
        int s;
        scanf("%d", &s);   // 合格分数
    
        int cnt = 0;   // 合格个数
        for (int i = 0; i < n; i++) {
            if (a[i] >= s) cnt++;
        }
        printf("%d\n", cnt);
    
        int first = 1;   // 标记是不是第一个输出
        for (int i = 0; i < n; i++) {
            if (a[i] >= s) {
                if (!first) printf(" ");
                printf("%.1f", a[i]);   // 保留1位小数
                first = 0;
            }
        }
        return 0;
    }
    

    复杂度分析

    扫两遍数组,n 最大 100,时间复杂度 O(n);额外空间复杂度 O(n)。

    • 1