求解 求大神
#include<stdio.h>
#include<math.h>
#include<assert.h>
#include <stdlib.h>
//#include<vector>
int main()
{
int i,j,k;
double x[5]={1800,6600,8400,4600,3000};
double y[5]={3900,3900,4400,10500,5500};
double a[5]={800,600,600,400,300};
double b[5]={800,600,300,400,300};
double m[6]={0};
double n[6]={0};
double f[5]={0};
double g[5]={0};
double w=0;
double t[6]={180,130,80,72,45,48};
for(i=0;i<5;i++)
{ m[0]=floor (x[i]/a[0]);
n[0]=floor (y[i]/b[0]);
f[0]=x[i]-m[0]*a[0];
g[0]=y[i]-n[0]*b[0];
for(j=1;j<5;j++)
{m[j]=floor(f[j-1]/a[j]);
n[j]=floor(g[j-1]/b[j]);
f[j]=f[j-1]-m[j]*a[j];
g[j]=g[j-1]-n[j]*b[j];
}
for(k=0;k<5;k++)
{ printf("m[k]=%d\n",m[k]);
printf("n[k]=%d\n",n[k]);
printf("f[k]=%d\n",f[k]);
printf("g[k]=%d\n",g[k]);
} //最后剩余的长度f[4],g[4]均小于300
if(f[4]>=g[4]) {m[5]=f[4]/300;n=0;}
else{n[5]=g[4]/300;m=0;}
printf("m[5]=%d\n",m[5]);
printf("n[5]=%d\n",n[5]);
}
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
{ w=w+m[j]*n[j]*t[j];
}
}
if(m[5]=0) w+=m[5]*t[5];
else if (n[5]=0) w+=m[5]*t[5];
printf("w=%d\n",w);
return 0;
} printf X math.h
[解决办法]
强烈建议以后发代码时,写上代码功能和思路。。。。
[解决办法]
lz 要什么?
[解决办法]
44 for(j=1;j<5;j++)
45 {
46 m[j]=floor(f[j-1]/a[j]);
47 n[j]=floor(g[j-1]/b[j]);
48 f[j]=f[j-1]-m[j]*a[j];
49 g[j]=g[j-1]-n[j]*b[j];
50 }
51 for(k=0;k<5;k++)
52 {
53 printf("m[k]=%lf\n",m[k]);
54 printf("n[k]=%lf\n",n[k]);
55 printf("f[k]=%lf\n",f[k]);
56 printf("g[k]=%lf\n",g[k]);
57 } //最后剩余的长度f[4],g[4]均小于300
58 if(f[4]>=g[4])
59 {
60 m[5]= f[4]/300.0;
61 // n=0;
62 //楼主 你这是的 double n[6] n = 0 ; 不明白你是想做啥
63 }
64 else
65 {
66 n[5]= g[4]/300.0;
67 // m=0;
68 //楼主 你这是的 double m[6] m = 0 ; 不明白你是想做啥
69 }
70 printf("m[5]=%lf\n",m[5]);
71 printf("n[5]=%lf\n",n[5]);