c语言 输入3行3列的矩阵,输出所有元素的累加和 函数调用

#include<stdio.h>/*本部分代码功能建议:函数原型声明*//*UserCodeBegin(Limit:lines<=1,lineLen<=50,考生可在本... #include <stdio.h>

/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
int he(int arr[3][3]);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

int main(void)
{
int num[3][3], i, j, sum;

printf("Please input the 3x3 Matrix:\n");
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
scanf("%d", &num[i][j]);
}
}

/* 本部分代码功能建议:调用用户自定义函数求矩阵所有元素之和 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多1行、行长<=50字符) */
sum = he(num);// 请问这里为什么要用he(num),不可以是he(num[3][3])吗
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */

printf("\nsum=%d\n", sum);
return 0;
}

/* User Code Begin(考生在此后根据设计需要完成程序的其它部分,如函数的定义,行数不限) */
int he(int arr[3][3])
{
int i, j, sum = 0;

for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 2; j++)
{
sum = arr[i][j] + sum;
}
}

return sum;
}
展开
 我来答
ghnjk
2011-12-30 · TA获得超过106个赞
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:121万
展开全部
sum = he(num);// 请问这里为什么要用he(num),不可以是he(num[3][3])吗
其中,num是数组num[3][3]的首地址,而num[3][3]是*(num+3+3*3)是一个整数,
而这个整数已经不是数组的数据,数组不存在num[3][3]
函数int he(int arr[3][3]);需要传入一个整形数组ARR[3][3]的首地址,
更多追问追答
追问
除了写成sum = he(num);还可以这样写吗?sum = he(&num[0][0]);
追答
不可以,,因为函数申明是int he(int arr[3][3]);告诉编译器需要一个第一维是3的二维数组首地址(即nt [][3]),而(&num[0][0])是一个int*指针,
编译的时候会出现
cannot convert parameter 1 from 'int *' to 'int [][3]'
类型不匹配错误
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式