c语言函数编程

2025-02-27 12:23:06
推荐回答(2个)
回答1:

你这里的问题不较多
(1)scanf("%d",a[i][j]);应该写成scanf("%d",&a[i][j]); 少了取地址符

(2)主函数中的fun(int a[M][M]);千万不能要int,注意形参和实参,而且改成a[M][M]也不行,那就成传一个数字了,最好改成fun(a),把数组地址传给形参

(3)int m,n最好是全局定义,因为你在子函数fun中没有给m和n赋值,主函数中的m和n是传不过去的
(4)sum=sum+(*(p+i)+j);也是不行的,(*(p+i)+j)只是p[i][j]的地址,改成*(*(p+i)+j)
(5)p=a[i];也是不行的,只需要p=a即可

回答2:

在最后调用fun()的时候:
fun(int a[M][M]);

改成:
fun(a);

应该就解决掉编译出的那个错了