C语言编写:用冒泡排序法对输入的20个数进行降序排序并存入数组中,然后再输入一个数插入该数组中,要求保持原序不变并输出该数组的21个数
时间: 2024-12-21 18:23:18 浏览: 0
在C语言中,我们可以使用冒泡排序算法先对20个数进行降序排序,然后通过二分查找找到合适的位置插入新数,保证数组的有序性。以下是简单的步骤:
首先,创建一个大小为20的整型数组,并读取20个数存入其中。由于是降序排列,每次比较都是较大值与较小值交换。
```c
#include <stdio.h>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
// 降序排列,所以这里是大于号
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[20], num;
printf("请输入20个数:\n");
for (int i = 0; i < 20; i++) {
scanf("%d", &arr[i]);
}
bubbleSort(arr, 20);
printf("排序后的数组(降序):\n");
for (int i = 0; i < 20; i++) {
printf("%d ", arr[i]);
}
printf("\n请输入需要插入的新数:");
scanf("%d", &num);
// 插入操作
for (int i = 19; i >= 0; i--) {
if (arr[i] > num) {
arr[i + 1] = arr[i];
} else {
arr[i + 1] = num;
break;
}
}
printf("\n插入新数后,数组(包括新数):\n");
for (int i = 0; i <= 20; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行程序后,按照提示输入数字,程序会将它们降序排列并显示结果,接着插入新数并保持原序输出整个数组。
阅读全文