C语言编写:用冒泡排序法对输入的20个数进行降序排序并存入数组中,然后再输入一个数插入该数组中,要求保持原序不变并输出该数组的21个数(都写在main方法里)
时间: 2024-12-21 07:23:30 浏览: 104
在C语言中,我们可以使用冒泡排序算法对整数数组进行降序排列,并在排序后插入新的元素。以下是整个过程的代码示例,包括`main`函数:
```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;
}
}
}
}
// 插入函数,保证原有序列不受影响
void insert(int arr[], int n, int value) {
arr[n] = value;
for (int i = n - 1; i >= 1 && arr[i] < arr[i - 1]; i--) {
arr[i] = arr[i - 1];
}
arr[i] = value;
}
int main() {
const int capacity = 21;
int arr[capacity];
// 输入20个数
printf("Enter 20 numbers (separated by space): ");
for (int i = 0; i < 20; i++) {
scanf("%d", &arr[i]);
}
// 对数组进行降序排序
bubbleSort(arr, 20);
// 提示用户输入新元素
printf("\nEnter a number to add: ");
int newNumber;
scanf("%d", &newNumber);
// 插入新元素
insert(arr, 20, newNumber);
// 输出排序后的数组
printf("Sorted array with the new number added is: ");
for (int i = 0; i <= 20; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,首先读取20个数并将它们存储在数组中,然后进行冒泡排序,接着插入新元素并保持原有的降序序列。最后,输出排序后包含21个元素的数组。
阅读全文
相关推荐


















