C语言请应用数组存储用户输入的10个整数,编写算法将该数组按照从小到大的顺序排列好。用户再输入1个整数,编写代码把它插入原数列中,要求仍然保持从小到大有序。 编写程序时应考虑到所插入数的各种可能性(比原来所有的数都小;比原来所有的数都大;在最大数和最小数之间
时间: 2023-06-27 09:07:09 浏览: 174
C语言程序设计-编写函数fun对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果;
5星 · 资源好评率100%
以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int arr[11];
int i, j, temp, num;
// 用户输入10个整数
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 将数组按照从小到大的顺序排列好
for (i = 0; i < 9; i++) {
for (j = i + 1; j < 10; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 用户再输入1个整数
printf("请输入一个整数:\n");
scanf("%d", &num);
// 将该整数插入原数列中,要求仍然保持从小到大有序
if (num <= arr[0]) {
// 比原来所有的数都小
for (i = 9; i >= 0; i--) {
arr[i + 1] = arr[i];
}
arr[0] = num;
} else if (num >= arr[9]) {
// 比原来所有的数都大
arr[10] = num;
} else {
// 在最大数和最小数之间
for (i = 0; i < 10; i++) {
if (num >= arr[i] && num <= arr[i + 1]) {
for (j = 9; j >= i + 1; j--) {
arr[j + 1] = arr[j];
}
arr[i + 1] = num;
break;
}
}
}
// 输出排列好的数组
printf("排列好的数组为:\n");
for (i = 0; i < 11; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
运行结果示例:
```
请输入10个整数:
6 3 9 1 8 4 2 7 5 0
请输入一个整数:
3
排列好的数组为:
0 1 2 3 3 4 5 6 7 8 9
```
阅读全文