已知整形数组a,输入数组元素后进行降序排序,然后输入一个数X,将X插入已知数组中,且保持降序不变

已知整形数组a,输入数组元素后进行降序排序,然后输入一个数X,将X插入已知数组中,且保持降序不变

1、数组降序排序
2、循环从后往前判断数组a[i]与x的大小,如果 x > a[i] 则 a[i + 1] = a[i]; continue; 否则 a[i + 1] = x; break;

供参考:

#include<stdio.h>
const int N = 1000;
int main()
{
    int n, x, i, j;
    int a[N];
    scanf("%d", &n); //n 个数
    for (i = 0; i < n; i++) // 输入n个数组元素
         scanf("%d", &a[i]);

    for (i = n - 1;i > 0; i--){ //降序排序
        for (j = 0;j < i; j++){
            if (a[j] < a[j+1])
                x = a[j], a[j] = a[j+1], a[j+1] = x;
        }
    }

    scanf("%d", &x); //输入 x: 待插入的数
 
    if (x < a[n - 1]){   // 插入操作
          a[n] = x;
    }
    else{
          for (i = n; x > a[i - 1] && i > 0; i--) {
                a[i] = a[i - 1];
          }
          a[i] = x;
    }
 
    for (i = 0; i < n + 1; i++)//输出 插入后的有序数列
          printf("%4d", a[i]);
    printf("\n");
    return 0;
}