调用函数sumetc(a);时出错:cannot convert parameter 1 from 'int [6][6]' to 'int ** ' 为什么???
函数如下intsumetc(int**a){intsum1,sum2,sum3;inti,j;for(i=0,j=0;i<6;i++){sum1+=a[i][j];if(...
函数如下
int sumetc(int **a)
{
int sum1,sum2,sum3;
int i,j;
for(i=0,j=0;i<6;i++)
{
sum1+=a[i][j];
if(i%2==0&&j%2==0)sum3=sum3*a[i][j];
j++;
}
for(i=0,j=5;i<6;i++)
{
sum2+=a[i][j];
j--;
}
return sum1;
return sum2;
return sum3;
}
没钱,分数不高,没有办法啊。请帮忙
怎么解决..? 展开
int sumetc(int **a)
{
int sum1,sum2,sum3;
int i,j;
for(i=0,j=0;i<6;i++)
{
sum1+=a[i][j];
if(i%2==0&&j%2==0)sum3=sum3*a[i][j];
j++;
}
for(i=0,j=5;i<6;i++)
{
sum2+=a[i][j];
j--;
}
return sum1;
return sum2;
return sum3;
}
没钱,分数不高,没有办法啊。请帮忙
怎么解决..? 展开
3个回答
展开全部
要么你把这句:int sumetc(int **a)
改成下面的形式: int sumetc(int a[][6]);
要么你把代码发上来.
不管怎么样,你的函数头还是有问题的.
你先按上面 改下试试..
改成下面的形式: int sumetc(int a[][6]);
要么你把代码发上来.
不管怎么样,你的函数头还是有问题的.
你先按上面 改下试试..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先变量a和指针运算符*结合,表明这是一个指针,然后再和第二个*结合表明这个指针指向的是一个指针的地址。因此应将一个指针的地址赋给变量a才是正确的,比如
int b=1; int *p=&b; int **a=&p;
再如
int *&a; 分析:首先变量a与&运算符结合,表明变量a是一个引用,然后再与*指针运算符结合,表明这个引用引用的是一个指针,因此应将一个指针赋给变量a,比如
int b=1; int *p=&b; int *&a=p;
所以int sumetc(int **a) 中 **a应该是一个整形变量,而你在函数内部却将其当做一个2维数组使用“sum2+=a[i][j];”,所以程序编译的时候才会出现:cannot convert parameter 1 from 'int [6][6]' to 'int ** ' 的错误提示。即不能转换2维整形数组到整形变量。
建议将函数定义修改成:int sumetc(int a[6][6])
int b=1; int *p=&b; int **a=&p;
再如
int *&a; 分析:首先变量a与&运算符结合,表明变量a是一个引用,然后再与*指针运算符结合,表明这个引用引用的是一个指针,因此应将一个指针赋给变量a,比如
int b=1; int *p=&b; int *&a=p;
所以int sumetc(int **a) 中 **a应该是一个整形变量,而你在函数内部却将其当做一个2维数组使用“sum2+=a[i][j];”,所以程序编译的时候才会出现:cannot convert parameter 1 from 'int [6][6]' to 'int ** ' 的错误提示。即不能转换2维整形数组到整形变量。
建议将函数定义修改成:int sumetc(int a[6][6])
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询