题解 | #有序序列插入一个数#
有序序列插入一个数
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; }