题解 | #有序序列插入一个数#
有序序列插入一个数
https://www.nowcoder.com/practice/74486aec6fe14d44b509efabf265ee66
#include <stdio.h>
int main() {
int arr[51] = { 0 };
int N = 0;
scanf("%d", &N);
int i;
for (i = 0; i < N; i++)
scanf("%d ", &arr[i]);
int num;
scanf("%d", &num);
for (i = 0; i < N; i++) {
if (num < arr[i]) {
int temp = arr[i];//记住要替换位置的元素
arr[i] = num;//插入新数
int j;
for (j = N; j > i + 1; j--)//将插入位置的后一个位置整体后移1位
arr[j] = arr[j - 1];
arr[i + 1] = temp;//将插入位置后的那个位置放进插入位置的原本的元素
break;
} else//如果插入的数比所有数都大
arr[N] = num;//将要插入的数字放在最后
}
for (i = 0; i < N + 1; i++)
printf("%d ", arr[i]);
return 0;
}
查看21道真题和解析