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