C语言。请应用数组存储用户输入的10个整数,编写算法将该数组按照从小到大的顺序排列好。用户再输入1个整 数,编写代码把它插入原数列中,要求仍然保持从小到大有序。 编写程序时应考虑到所插入数的各种可能性(比原来所有的数都小;比原来所有的数都大;在最大数和最 小数之间)。 输入格式: 请在一行中输入10整数,数据间以空格为间隔。 再在一行中输入1个待插入的整数。 输出格式: 将插入前和插入后排好的有序序列分别在不同行内输出,每个数的显示格式:占3位,右对齐。
时间: 2024-02-11 17:09:24 浏览: 73
以下是C语言的代码实现:
```c
#include <stdio.h>
#define SIZE 10
int main() {
int arr[SIZE], i, j, insert_num, flag = 0;
// 用户输入10个整数
printf("请输入10个整数:\n");
for (i = 0; i < SIZE; i++) {
scanf("%d", &arr[i]);
}
// 冒泡排序
for (i = 0; i < SIZE - 1; i++) {
for (j = 0; j < SIZE - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
// 输出排序前的数组
printf("排序前的数组为:\n");
for (i = 0; i < SIZE; i++) {
printf("%3d", arr[i]);
}
printf("\n");
// 插入排序
printf("请输入待插入的整数:\n");
scanf("%d", &insert_num);
for (i = SIZE - 1; i >= 0; i--) {
if (insert_num < arr[i]) {
arr[i + 1] = arr[i];
} else {
arr[i + 1] = insert_num;
flag = 1;
break;
}
}
if (flag == 0) {
arr[0] = insert_num;
}
// 输出排序后的数组
printf("排序后的数组为:\n");
for (i = 0; i < SIZE + 1; i++) {
printf("%3d", arr[i]);
}
printf("\n");
return 0;
}
```
程序先使用冒泡排序算法对输入的数组进行排序,然后再根据待插入的数的大小插入到数组中。如果待插入的数比所有数都小,就插入到数组开头。如果待插入的数比所有数都大,就插入到数组末尾。最后输出排序前和排序后的数组。
阅读全文