如何用 C 语言编写程序按升序排列数字?
下面是一份完整的使用攻略,包含要点与示例程序:
实现思路
按升序排列数字,可以使用选择排序(Selection Sort)算法实现。
选择排序的基本思路是:
- 从数组中选择一个最小的元素,将其放到第一个位置;
- 从剩下的元素中选择一个最小的元素,将其放到第二个位置;
- 一直重复上述过程,直到全部元素都被排序。
示例程序
下面是一个示例程序,演示如何使用选择排序算法按升序排列数字:
#include <stdio.h>
void selection_sort(int arr[], int n) {
int i, j, min_idx;
// 遍历整个数组
for (i = 0; i < n - 1; i++) {
// 找到最小元素的下标
min_idx = i;
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
// 交换当前元素和最小元素
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
int main() {
int arr[] = {10, 7, 8, 9, 1, 5};
int n = sizeof(arr) / sizeof(arr[0]);
selection_sort(arr, n);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
上面这个程序的输出是:
Sorted array: 1 5 7 8 9 10
说明
以上程序演示了如何使用选择排序算法按升序排列数字。
程序中的 selection_sort 函数实现了选择排序算法,接受要排序的数组和数组长度作为参数。
在 main 函数中,我们定义了一个测试数组,使用 sizeof 运算符求得数组长度并传递给 selection_sort 函数。
最后,打印按升序排列后的数组。
PS:请注意整个程序的排版美观,方便其他人阅读和理解。