题解
产品质检2
1 条题解
-
0
解题思路
读入 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