用冒泡排序法对输入的二十个数进行降序排序并存入数组中,然后再输入一个数插入该数组中,要求保持原序不变并输出该数组的二十一个数 C语言 数组
时间: 2024-03-13 18:46:37 浏览: 107
C语言程序设计-编写函数用冒泡排序法对数组中的数据进行从小到大的排序;.c
5星 · 资源好评率100%
好的,我来给你讲一下。
首先,我们需要使用冒泡排序法对输入的二十个数进行降序排序。冒泡排序法的基本思想是从头到尾依次比较相邻的两个数,如果前一个数比后一个数大,则交换它们的位置,一次遍历后最大的数就会被排到最后。然后再对剩下的数进行同样的操作,直到所有的数都排好序为止。
下面是代码实现:
```c
#include <stdio.h>
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[20], i, num;
printf("请输入20个数:\n");
for (i = 0; i < 20; i++) {
scanf("%d", &arr[i]);
}
bubbleSort(arr, 20);
printf("排序后的数组为:\n");
for (i = 0; i < 20; i++) {
printf("%d ", arr[i]);
}
printf("\n请输入要插入的数:\n");
scanf("%d", &num);
for (i = 19; i >= 0; i--) {
if (arr[i] > num) {
arr[i + 1] = arr[i];
} else {
break;
}
}
arr[i + 1] = num;
printf("插入后的数组为:\n");
for (i = 0; i < 21; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这段代码中,我们首先定义一个 `bubbleSort` 函数来实现冒泡排序。然后在 `main` 函数中,我们先输入二十个数,并调用 `bubbleSort` 函数对它们进行降序排序。然后再输入一个数 `num`,并将它插入到已排序的数组中。为了保持原序不变,我们需要从后往前遍历数组,找到第一个小于等于 `num` 的数,并将 `num` 插入到它的后面。最后输出排序后的数组和插入后的数组,共二十一个数。
如果你还有什么问题,可以继续问我哦!
阅读全文