#include <stdio.h>
int main() {
int n, i, k, j, m;
while (scanf("%d", &n) != EOF) {
int a[21];
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
scanf("%d", &m);
scanf("%d", &k);
for (i = 0; i < n; i++) {//从这里开始 逻辑混乱
if (a[i] > m) {
for (j = n; j > i; j--) {
a[j] = a[j - 1];
}
a[i] = m;
}
}
for (i = 0; i <= n ; i++) {
printf("%d", a[i]);
if (i != n ) {
printf(" ");
}
}
printf("\n%d\n", a[k]);
}
return 0;
}
改进过了,本地编译没找出漏洞,但oj上一直显示答案错误AC%80.
#include <stdio.h>
int main() {
int n, i, k, j, m, x;
while (scanf("%d", &n) != EOF) {
int a[20];
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
scanf("%d", &m);
scanf("%d", &k);
for (i = 0; i < n; i++) {
if (a[i] > m) {
x = i;
break;
}
}
for (j = n; j > x; j--) {
a[j] = a[j - 1];
}
a[x] = m;
for (i = 0; i <= n ; i++) {
printf("%d", a[i]);
if (i != n ) {
printf(" ");
}
}
printf("\n%d", a[k]);
}
return 0;
}