用C语言编写用空格分隔,从键盘输入任意 10 个整数,用选择排序法按升序排列这组数,然后输出。 输入格式:3 1 4 1 5 9 2 6 7 5 输出格式:1 1 2 3 4 5 5 6 7 9
时间: 2024-11-22 07:36:36 浏览: 22
在C语言中,你可以使用选择排序算法来实现这个功能。首先,我们需要定义一个函数来完成选择排序过程,然后获取用户输入并调用该函数。以下是完整的示例代码:
```c
#include <stdio.h>
// 选择排序函数
void selectionSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
// 找到未排序部分的最小元素
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
// 将找到的最小元素与当前位置交换
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
int main() {
int num, arr[10], input = 0;
printf("请输入10个整数,以空格分隔:");
// 获取用户输入
for (int i = 0; i < 10 && input == 0; i++) {
scanf("%d", &num);
arr[i] = num;
if (i != 0 && num > 0) { // 防止连续输入0
input = 1;
}
}
// 确保数组长度足够
if (input == 0) {
printf("输入错误,至少需要10个非零整数。\n");
return 1;
}
// 对输入的整数进行选择排序
selectionSort(arr, 10);
printf("按升序排列后的结果:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
当你运行这段代码时,它会提示你输入10个整数,然后输出升序排列的结果。注意,如果你输入的不是10个非零整数,程序会给出错误信息。
阅读全文