调用函数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;
}
没钱,分数不高,没有办法啊。请帮忙
怎么解决..?
展开
 我来答
jzq740176597
推荐于2017-09-05 · TA获得超过301个赞
知道答主
回答量:168
采纳率:0%
帮助的人:191万
展开全部
你的sumetc函数第一个参数类型给错了呗!
1、int sumetc(int **a) 改成a[6][6].
2、还有一种方法就是,将你的数组名字作为指针传给 sumetc((int **)数组名),(int**)进行强制转换。但是这个是不安全的。可能运行如常但是结果可能有偏差。仔细查看一下。最好用第一个,如果出现程序问题就是第一就是改程序设计(class
设计)第二个就考虑改数据结构
好运。
banxi1988
2010-12-13 · TA获得超过579个赞
知道小有建树答主
回答量:327
采纳率:66%
帮助的人:271万
展开全部
要么你把这句:int sumetc(int **a)
改成下面的形式: int sumetc(int a[][6]);
要么你把代码发上来.
不管怎么样,你的函数头还是有问题的.
你先按上面 改下试试..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
论宇之新宇宙观
推荐于2017-09-26 · 中国人自己的宇宙观,新世纪新宇宙观!
论宇之新宇宙观
采纳数:514 获赞数:2456

向TA提问 私信TA
展开全部
首先变量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])
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式