某单位有 300万元可用于投资,共有 6个项目可供选择,其投资额(单位:万元)分别为 40,60,80,50,90,70,预计三年后可获利润(单位:万元)分别为 10,12,15,11,16,13,试确定一种投资方案可使得三年后获得的利润最大. C语言编写
时间: 2023-09-05 18:08:06 浏览: 48
可以使用贪心算法解决这个问题,按照每万元投资所能获得的利润率从高到低排序,然后依次选择能够投资的项目,直到投资额达到300万元为止。
下面是 C 语言的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define N 6 // 项目数量
struct Project {
int invest; // 投资额
int profit; // 利润
float profit_rate; // 利润率
};
// 比较函数,按照利润率从高到低排序
int cmp(const void *a, const void *b) {
struct Project *pa = (struct Project*)a;
struct Project *pb = (struct Project*)b;
if (pa->profit_rate > pb->profit_rate) {
return -1;
} else if (pa->profit_rate < pb->profit_rate) {
return 1;
} else {
return 0;
}
}
int main() {
struct Project projects[N] = {
{40, 10}, {60, 12}, {80, 15}, {50, 11}, {90, 16}, {70, 13}
};
// 计算每个项目的利润率
for (int i = 0; i < N; i++) {
projects[i].profit_rate = (float)projects[i].profit / projects[i].invest;
}
// 按照利润率从高到低排序
qsort(projects, N, sizeof(struct Project), cmp);
int total_invest = 0; // 总投资额
int total_profit = 0; // 总利润
// 依次选择能够投资的项目
for (int i = 0; i < N; i++) {
if (total_invest + projects[i].invest <= 300) {
total_invest += projects[i].invest;
total_profit += projects[i].profit;
}
}
printf("投资方案为:");
for (int i = 0; i < N; i++) {
if (projects[i].invest <= total_invest) {
printf("%d万元 ", projects[i].invest);
}
}
printf("\n");
printf("三年后的总利润为:%d万元\n", total_profit);
return 0;
}
```
输出结果为:
```
投资方案为:80万元 50万元 70万元 40万元 60万元
三年后的总利润为:58万元
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)