用C语言编写程序,输入10个数按升序排列,再输入一个数,按原来的规律将其插入并输出。
时间: 2023-07-16 08:15:15 浏览: 34
以下是用C语言编写的程序,实现输入10个数按升序排列,再输入一个数,按原来的规律将其插入并输出。具体实现过程中使用了冒泡排序算法和插入排序算法。
```c
#include <stdio.h>
void bubble_sort(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_sort(int arr[], int n) { // 插入排序
int temp = arr[n-1];
int i = n-2;
while (i >= 0 && arr[i] > temp) {
arr[i+1] = arr[i];
i--;
}
arr[i+1] = temp;
}
int main() {
int arr[11];
printf("请输入10个数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
bubble_sort(arr, 10); // 升序排列
printf("排序后的结果为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n请输入要插入的数:\n");
scanf("%d", &arr[10]);
insert_sort(arr, 11); // 将新数插入到原来的规律中
printf("插入后的结果为:\n");
for (int i = 0; i < 11; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行结果如下:
```
请输入10个数:
3 1 5 2 9 8 0 7 6 4
排序后的结果为:
0 1 2 3 4 5 6 7 8 9
请输入要插入的数:
10
插入后的结果为:
0 1 2 3 4 5 6 7 8 9 10
```