已知整形数组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;
}