error 不能将参数1由int [2][6]"转换为"int **

//装配线调度#include<stdio.h>intFASTEST_WAY(int**a,int**t,int*e,int*x,int*f1,int*f2,int*l1... //装配线调度
#include <stdio.h>

int FASTEST_WAY(int**a,int**t,int*e,int*x,int*f1,int*f2,int*l1,int*l2,int f,int l)
{
f1[0]=e[0]+a[0][0];
f2[0]=e[1]+a[1][0];
for(int j=1;j<6;j++)
{
if(f1[j-1]+a[0][j]<=f2[j-1]+t[1][j-1]+a[0][j])
{
f1[j]=f1[j-1]+a[0][j];
l1[j]=1;
}
else
{
f1[j]=f2[j-1]+t[1][j-1]+a[0][j];
l1[j]=2;
}
if(f2[j-1]+a[1][j]<=f1[j-1]+t[0][j-1]+a[1][j])
{
f2[j]=f2[j-1]+a[1][j];
l2[j]=2;
}
else
{
f2[j]=f1[j-1]+t[0][j-1]+a[1][j];
l2[j]=1;
}
}
if (f1[5]+x[0]<=f2[5]+x[1])
{
f=f1[5]+x[0];
l=1;
}
else
{
f=f2[5]+x[1];
l=2;
}
return l;
}

void PRINT_STATION(int l,int*l1,int*l2)
{
int n=6;
printf("line %d,station 6",l);
for(int i=4;i<=0;i--)
printf("line %d,station %d",(l%2!=0?l1[i]:l2[i]),--n);
}
void main ()
{
int a[2][6]={{7,9,3,4,8,4},{8,5,6,4,5,7}};
int t[2][5]={{2,3,1,3,4},{2,1,2,2,1}};
int e[2]={2,4};
int x[2]={3,2};
int n=6;
int f1[6]={0},f2[6]={0};
int l1[5]={0},l2[5]={0};
int f=0,l=0;
l=FASTEST_WAY(a,t,e,x,f1,f2,l1,l2,f,l);
PRINT_STATION(l,l1,l2);

}

速求高人解答啊!
展开
 我来答
小萝卜tan
2013-11-27 · TA获得超过105个赞
知道小有建树答主
回答量:56
采纳率:0%
帮助的人:98.6万
展开全部
静态创建的二维数组a[2][6]、t[2][5],对应的数组名a和t实际上不是int **类型的指针!这一点很多初学者都容易弄混了,把FASTEST_WAY函数的参数列表改成:

int FASTEST_WAY(int a[][6],int t[][5],int*e,int*x,int*f1,int*f2,int*l1,int*l2,int f,int l)

或者:

int FASTEST_WAY(int (* a)[6],int (*t)[5],int*e,int*x,int*f1,int*f2,int*l1,int*l2,int f,int l)

就可以了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qmg1023
2013-11-27 · TA获得超过888个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:909万
展开全部
l=FASTEST_WAY((int**)a,(int**)t,e,x,f1,f2,l1,l2,f,l);

可以编译通过,不过我运行了一下,程序有问题会报错,估计内存越界。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小坏蛋宽guy
2013-11-27 · TA获得超过300个赞
知道小有建树答主
回答量:239
采纳率:66%
帮助的人:142万
展开全部
二维数组的传参至少要给出第二维的长度,你要好好查查二维数组的传参技巧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式