C语言排序程序:设计一个主函数和三个子函数,主函数实现如下功能通过主函数发送一个选择菜单并获取一个数组(数组最大为50)然后通过用户选择的方式进行调用相应的函数,子函数分别实现如下功能:冒泡排序、快速排序、选择排序,在排序后输出数组。
时间: 2024-11-13 20:20:53 浏览: 16
C语言程序设计-编写函数fun将一个数组中的值按逆序存放,并在main()函数中输出;
4星 · 用户满意度95%
在C语言中,你可以设计一个这样的排序程序结构:
```c
#include <stdio.h>
// 定义排序函数指针数组,对应冒泡排序、快速排序和选择排序
typedef void(*SortFunction)(int[], int);
// 冒泡排序函数
void bubble_sort(int arr[], int n) {
// ... (编写冒泡排序算法)
printf("冒泡排序结果: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
}
// 快速排序函数
void quick_sort(int arr[], int low, int high) {
// ... (编写快速排序算法)
printf("快速排序结果: ");
for (int i = low; i <= high; i++) {
printf("%d ", arr[i]);
}
}
// 选择排序函数
void selection_sort(int arr[], int n) {
// ... (编写选择排序算法)
printf("选择排序结果: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
}
// 主函数
int main() {
int arr[50], n, choice;
printf("欢迎使用排序程序,请输入数组元素个数(1-50): ");
scanf("%d", &n);
printf("请选择排序方法:\n");
printf("1. 冒泡排序\n");
printf("2. 快速排序\n");
printf("3. 选择排序\n");
scanf("%d", &choice);
SortFunction sort_func;
switch (choice) {
case 1:
sort_func = bubble_sort;
break;
case 2:
sort_func = quick_sort;
break;
case 3:
sort_func = selection_sort;
break;
default:
printf("无效的选择,程序退出.\n");
return 1;
}
// 调用对应的排序函数
sort_func(arr, n);
return 0;
}
```
在这个程序中,`main()`函数负责接收用户输入的数组大小和排序选项,然后调用相应的排序函数。每个子函数实现了对应的排序算法,并在排序完成后打印出数组。
阅读全文