C语言结构体指针排序:冒泡排序算法实现
以下是使用结构体指针和冒泡排序算法对10个用户输入的数字进行排序的C语言代码,代码将结果输出到控制台窗口:
#include <stdio.h>
#define SIZE 10
struct Numbers {
int num;
};
void swap(struct Numbers *a, struct Numbers *b) {
struct Numbers temp = *a;
*a = *b;
*b = temp;
}
void bubbleSort(struct Numbers *arr, int n) {
int i, j;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j].num > arr[j + 1].num) {
swap(&arr[j], &arr[j + 1]);
}
}
}
}
int main() {
struct Numbers numbers[SIZE];
int i;
printf("请输入10个数:\n");
for (i = 0; i < SIZE; i++) {
printf("第%d个数:", i + 1);
scanf("%d", &(numbers[i].num));
}
bubbleSort(numbers, SIZE);
printf("\n排序后的结果为:\n");
for (i = 0; i < SIZE; i++) {
printf("%d ", numbers[i].num);
}
return 0;
}
代码解释:
-
定义结构体
Numbers:用于存储每个输入数字。 -
定义
swap函数:用于交换两个结构体指针的值。 -
定义
bubbleSort函数:实现冒泡排序算法,对结构体数组进行排序。 -
在
main函数中:- 声明一个结构体数组
numbers,用于存储用户输入的数字。 - 通过循环从键盘输入10个数字,并存储到结构体数组中。
- 调用
bubbleSort函数对结构体数组进行排序。 - 遍历排序后的结构体数组,并将结果输出到控制台窗口。
- 声明一个结构体数组
本示例代码展示了如何使用结构体指针和冒泡排序算法进行数字排序,为学习C语言结构体和排序算法提供了一个直观的例子。
原文地址: https://www.cveoy.top/t/topic/pbMd 著作权归作者所有。请勿转载和采集!