用C语言在键盘上输入N个整数,试编制程序使该数组中的数按照从小到大的次序排列(分别用起泡排序和选择排序实现)。
时间: 2024-10-17 20:05:58 浏览: 19
在C语言中,我们可以使用起泡排序和选择排序这两种简单的算法来对键盘输入的N个整数进行排序。以下是两个示例程序:
### 起泡排序 (Bubble Sort)
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int N, num[100]; // 假设最多100个整数
printf("请输入整数的数量(N): ");
scanf("%d", &N);
printf("请输入%d个整数:\n", N);
for (int i = 0; i < N; i++) {
scanf("%d", &num[i]);
}
bubble_sort(num, N);
printf("排序后的数组: \n");
for (int i = 0; i < N; i++) {
printf("%d ", num[i]);
}
printf("\n");
return 0;
}
```
### 选择排序 (Selection Sort)
```c
#include <stdio.h>
void selection_sort(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;
}
}
// 主函数同上...
```
这两个程序首先从用户那里获取输入的整数数量和数值,然后使用各自的排序算法对它们进行排序,并打印出结果。
阅读全文