// 思路来自前面相同一道题的大佬 #include<stdio.h> int main() { int a =0,arr[50],x=0; scanf("%d",&a); for(int i = 0;i<a;++i) //接收 { scanf("%d",&arr[i]); } scanf("%d",&x); int i; for(int i = a-1;i>=0;--i) //从后遍历数组 { if(x>arr[i]) { arr[i+1]=x; break; } else { arr[i+1]=arr[i]; //依次比较,直到x大于任一元素,否则将比较过的元素在数组中后移一位 arr[i]=x; //x顶替被比较的元素 } } for(int i = 0;i<a+1;++i) { printf("%d ",arr[i]); } return 0; }