用c语言设计一个综合程序,有主菜单至少有三个函数完成三种所学算法的独立功能,比如穷举法、迭代法、排序法等等
时间: 2024-03-10 12:45:12 浏览: 130
好的,可以使用以下代码实现:
```c
#include <stdio.h>
int main_menu(); // 主菜单函数
int enumeration(); // 穷举法函数
int iteration(); // 迭代法函数
int sort(); // 排序法函数
int main() {
int choice;
do {
choice = main_menu();
switch (choice) {
case 1:
enumeration();
break;
case 2:
iteration();
break;
case 3:
sort();
break;
case 0:
printf("程序已退出!\n");
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
} while (choice != 0);
return 0;
}
// 主菜单函数
int main_menu() {
int choice;
printf("\n");
printf("********** 主菜单 **********\n");
printf("* 1. 穷举法 *\n");
printf("* 2. 迭代法 *\n");
printf("* 3. 排序法 *\n");
printf("* 0. 退出程序 *\n");
printf("*****************************\n");
printf("请输入您的选择:");
scanf("%d", &choice);
return choice;
}
// 穷举法函数
int enumeration() {
int i, j, k;
int count = 0;
for (i = 0; i <= 100; i++) {
for (j = 0; j <= 50; j++) {
for (k = 0; k <= 20; k++) {
if (i + j + k == 100 && i * 5 + j * 3 + k / 3 == 100) {
printf("鸡:%d只,兔:%d只,鱼:%d条\n", i, j, k);
count++;
}
}
}
}
printf("共有%d种可能!\n", count);
return 0;
}
// 迭代法函数
int iteration() {
int n, m;
int i, j;
double sum = 0;
printf("请输入n和m的值:");
scanf("%d %d", &n, &m);
for (i = 1; i <= n; i++) {
double product = 1;
for (j = 1; j <= m; j++) {
product *= (i + j) * 1.0 / j;
}
sum += product;
}
printf("结果为:%.2f\n", sum);
return 0;
}
// 排序法函数
int sort() {
int arr[10] = {3, 5, 4, 2, 1, 7, 6, 8, 9, 0};
int i, j;
int temp;
printf("排序前的数组为:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
for (i = 0; i < 9; i++) {
for (j = i + 1; j < 10; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printf("排序后的数组为:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
程序包括主函数 `main` 和三个独立功能的函数:穷举法函数 `enumeration`、迭代法函数 `iteration` 和排序法函数 `sort`。主函数中使用一个 `do-while` 循环,根据用户的选择调用不同的函数,直到用户选择退出程序为止。主菜单函数 `main_menu` 显示主菜单并获取用户的选择。
穷举法函数 `enumeration` 实现了解鸡兔同笼问题,使用三层循环枚举所有可能的情况,并输出符合要求的解。
迭代法函数 `iteration` 实现了一个迭代求和的算法,根据用户输入的 $n$ 和 $m$,计算出 $\sum_{i=1}^n\prod_{j=1}^m\frac{i+j}{j}$ 的值。
排序法函数 `sort` 实现了一个简单的选择排序算法,对一个整型数组进行排序,并输出排序前后的数组。
阅读全文
相关推荐
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![ppt](https://img-home.csdnimg.cn/images/20241231044937.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)