#include <stdio.h> int main() { int n = 0; int arr[51] = { 0 }; int num = 0; scanf("%d", &n); int i = 0; for (i = 0; i < n; i++) { scanf("%d ", &arr[i]); } scanf("%d", &num); int arr1[50] = { 0 }; int j = 0; //找出排列大于num的数存放到arr1 for (i = 0; i < n; i++) { if (arr[i] > num) { arr1[j] = arr[i]; j++; } } arr[n - j] = num; //arr剩下n - j个数不变,下标为n-j是插入数位置 for (i = n - j + 1, j = 0; i < n + 1; i++) //把arr1中数存到arr中,从下标为n-j+1开始到n+1 { arr[i] = arr1[j]; j++; } //输出 for (i = 0; i < n + 1; i++) { printf("%d ", arr[i]); } return 0; }