写一个程序,输入十个整数到数组unsorted中。程序将循环遍历unsorted数组十遍,每遍选择最小的值拷贝到sorted数组中的下一个可用元素位置,并将unsorted中对应的最小值替换为一个大值(例如9999)。示例如下: 开始时的unsorted:14 22 67 31 89 11 42 35 65 49 开始时的sorted: 第一遍后的unsorted:14 22 67 31 89 9999 42 35 65 49 第一遍后的sorted:11 第二遍后的unsorted:9999 22 67 31 89 9999 42 35 65 49 第一遍后的sorted:11 14 …… 显示sorted数组的值。 **输入格式要求:"%d" 提示信息:"请输入十个整数:\n" "第%d个数:" **输出格式要求:"%d " 提示信息:"完成后sorted数组的值为:"
时间: 2023-11-22 08:53:01 浏览: 167
编写程序实现以下功能:从键盘输入十个整数,用冒泡法排序后按从小到大输出
下面是一个示例程序的代码实现:
```c
#include <stdio.h>
#define SIZE 10
int main()
{
int unsorted[SIZE], sorted[SIZE];
int i, j, min, min_index;
printf("请输入十个整数:\n");
for (i = 0; i < SIZE; i++) {
printf("第%d个数:", i + 1);
scanf("%d", &unsorted[i]);
sorted[i] = 0; // 初始化为0
}
printf("完成后sorted数组的值为:");
for (i = 0; i < SIZE; i++) {
min = 9999; // 初始化为一个大值
for (j = 0; j < SIZE; j++) {
if (unsorted[j] < min) {
min = unsorted[j];
min_index = j;
}
}
unsorted[min_index] = 9999; // 替换为一个大值
sorted[i] = min;
printf("%d ", sorted[i]);
}
printf("\n");
return 0;
}
```
程序首先定义了两个数组`unsorted`和`sorted`,分别用于存放输入的未排序的数组和排序后的数组。然后使用循环读入十个整数到`unsorted`数组中,并将`sorted`数组的所有元素初始化为0。
接下来的两重循环实现了选择排序的过程,即每次找到`unsorted`数组中最小的元素,将其添加到`sorted`数组中,并将`unsorted`数组中对应的最小值替换为一个大值。最后循环输出`sorted`数组的所有元素。
需要注意的是,由于每次替换一个最小值后,该值在后面的遍历中不应再被选中,因此程序将其替换为了一个大值,这里使用了9999作为替换值。
阅读全文