35分,请高手们进来,麻烦帮忙编个C语言,小弟谢谢了!! 35

将7万元投资到A,B,C三项目上,其利润见下表:投资额(万元)│1234567——————┼————————————————————项A利润│0.110.130.150.... 将7万元投资到A,B,C三项目上,其利润见下表:

投资额(万元)│ 1 2 3 4 5 6 7

——————┼————————————————————

项 A利润 │0.11 0.13 0.15 0.24 0.24 0.30 0.35

B利润 │0.12 0.16 0.21 0.25 0.25 0.29 0.34

目 C利润 │0.08 0.12 0.20 0.26 0.26 0.30 0.35

如何分配投资额,使获得的利润最大。
下面是我编的程序,但有问题啊!!麻烦高手们了!谢谢了!

#include<stdio.h>
#include<math.h>
double fun(double *a,double *b,double *c)
{
double *s,*w,*h;
int i,j,k,mid,high,low;
double a[][][],max;
for(i=0;i<8;i++)
s[i]=a[i]*i;
for(j=0;j<8;j++)
w[j]=b[j]*j;
for(k=0;k<8;k++)
h[k]=c[k]*k;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
for(k=0;k<8;k++)
{
if(i+j+k!=7)
a[i][j][k]=0;
else if(i+j+k==7)
{
a[i][j][k]=s[i]+w[j]+h[k];
printf("A:%d B:%d C:%d profit: %lf\n",i,j,k,a[i][j][k]);
}
}
max=a[0][0][0];
for(i=0;i<8;i++)
for(j=0;j<8;j++)
for(k=0;k<8;k++)
if(a[i][j][k]>max)
{
max=a[i][j][k];
low=i;
mid=j;
high=k;
}
printf("When A:%d B:%d C:%d\n",low,mid,high);
printf("The greatest profit is %lf",max);
}
main()
{double a[8]={0,0.11,0.13,0.15,0.24,0.24,0.30,0.35},
b[8]={0,0.12,0.16,0.21,0.25,0.25,0.29,0.34},
c[8]={0,0.08,0.12,0.20,0.26,0.26,0.30,0.35};
fun(a,b,c);
printf("\n\n");
}
展开
 我来答
高金山
2008-05-06 · TA获得超过1万个赞
知道大有可为答主
回答量:4101
采纳率:0%
帮助的人:1992万
展开全部
楼主写的不对啊,我给你编了一个。你看看吧。
输出是:
When A:1 B:2 C:4
The greatest profit is 0.53

main()
{
double a[8]={0,0.11,0.13,0.15,0.24,0.24,0.30,0.35};
double b[8]={0,0.12,0.16,0.21,0.25,0.25,0.29,0.34};
double c[8]={0,0.08,0.12,0.20,0.26,0.26,0.30,0.35};
int i,j,k,x=0,y=0,z=0;
float max;

max=a[x]+b[y]+c[z];
for(i=0;i<=7;i++)
for(j=0;j<=7;j++)
for(k=0;k<=7;k++)
{
if((max<a[i]+b[j]+c[k])
&& (i+j+k<=7))
{
x=i;y=j;z=k;
max=a[x]+b[y]+c[z];
}
}
printf("When A:%d B:%d C:%d\n",x,y,z);
printf("The greatest profit is %lf\n",max);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kofeffect
2008-05-06 · TA获得超过627个赞
知道小有建树答主
回答量:333
采纳率:0%
帮助的人:468万
展开全部
1.程序如下:★★★★★
#include "stdio.h"
void main ()
{
double a[]={0.11,0.13,0.15,0.24,0.24,0.30,0.35};
double b[]={0.12,0.16,0.21,0.25,0.25,0.29,0.34};
double c[]={0.08,0.12,0.20,0.26,0.26,0.30,0.35};
double sum = 0;
int i=0,j=0;
int x=0,y=0;
for (i=0;i<7;i++)
{
for (j=0;j<7-i;j++)
{
double temp=0;
if (i+j<5)
{
temp = a[i]+b[j]+c[7-i-j-3];
}
else
temp = a[i]+b[j];
if (sum<temp)
{
sum = temp;
x = i;
y = j;
}
}
}
printf("A项目:%d万元; B项目:%d万元; C项目:%d万元 总利润:%f\n",x+1,y+1,7-x-y-3+1,sum);
}

2.运行效果:★★★★★
A项目:1万元; B项目:2万元; C项目:4万元 总利润:0.530000
请按任意键继续. . .

3.补充一点:★★★★★
这个程序没有考虑到A项目不投入只投入B和C项目的情况,也没有考虑到B项目不投入只投入A和C项目的情况;楼主可以在我程序基础上完善!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hbhshshzhsb
2008-05-06 · TA获得超过133个赞
知道答主
回答量:119
采纳率:0%
帮助的人:118万
展开全部
#include<stdio.h>
main()
{
double a[]={0,0.11,0.13,0.15,0.24,0.24,0.30,0.35},b[]={0,0.12,0.16,0.21,0.25,0.25,0.29,0.34},c[]={0,0.08,0.12,0.20,0.26,0.26,0.30,0.35}; //为了下标和循环的数一致,才多加了一个0
int ai,aj,bi,bj;
double n,m=0.0;
for(ai=0;ai<7;ai++)
for(bi=0;bi<7&&ai+bi<=7;bi++)
{
n=a[ai]*ai+b[bi]*bi+c[7-ai-bi]*(7-ai-bi);
if(m<n)
{
m=n;
aj=ai;
bj=bi;
}
}
printf("A项目:%d; B项目:%d; C项目:%d 总利润:%f\n",aj,bj,7-aj-bj,m);
}

不知道对不对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仙鼠酱h
2008-05-06 · 超过26用户采纳过TA的回答
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:108万
展开全部
楼上的那位好强啊!!
看来我得学学了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式