#12248. 珅泽教育CSP-J第一轮模拟考第二十四套 第 20 题
珅泽教育CSP-J第一轮模拟考第二十四套 第 20 题
二、阅读程序(判断题正确填 A、错误填 B;除特殊说明外,判断题 2 分,选择题 3 分,共计 40 分)
程序一:两种排序输出
#include <iostream>
using namespace std;
const int MAXN = 1000050;
int n, a[MAXN], a1[MAXN], b[MAXN], lim;
void solve1() {
for (int i = 1; i <= n; i++)
b[a[i]]++; // ①
for (int i = 1; i <= lim; i++) {
if (b[i]) // ②
cout << i << " ";
}
cout << endl;
}
void solve2() {
int cnt = 0, flag;
for (int i = 1; i <= n; i++) {
flag = false;
for (int j = 1; j <= n - 1; j++) {
if (a[j] > a[j + 1]) {
swap(a[j], a[j + 1]);
cnt++;
flag = true;
}
}
//if (flag == false)
// break;
}
for (int i = 1; i <= n; i++)
cout << a[i] << " ";
cout << endl;
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
a1[i] = a[i]; // ③
lim = max(a[i], lim); // ④
}
solve1();
for (int i = 1; i <= n; i++)
a[i] = a1[i];
solve2();
return 0;
}
已知 ,。
- 假设已经输入 ,哪组数据会使
solve1与solve2的输出不同?
{{ select(1) }}
- 1 10 100 1000 10000 888 8888 88888
- 6321 158987 16305 68486 50556 847 156505 15610
- 777 888 999 888 777 888 999 666
- 999993 999994 999995 999996 999997 999998 999999 1000000