c语言函数编程
你这里的问题不较多
(1)scanf("%d",a[i][j]);应该写成scanf("%d",&a[i][j]);少了取地址符
(2)主函数中的fun(inta[M][M]);千万不能要int,注意形参和实参,而且改成a[M][M]也不行,那就成传一个数字了,最好改成fun(a),把数组地址传给形参
(3)intm,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即可
更多追问追答
谢谢你的解答
可是还是有几个问题没有明白,希望你能再说一下
(1)主函数中的fun(inta[M][M])和形参一样是int类型的啊,虽然我现在知道不可以那样些,但还是有些想不明白
(2)sum=sum+(*(p+i)+j)中(*(p+i)+J)不就是表示的a[i][j]地址么
(3)我看书上说p=a[i]表示列地址,P=a表示的是行地址啊
一,因为这是形参和实参的形式决定的,实参只需要地址或者值,形参需要类型和变量。
二,你想加的应该是数值,而不是地址,是地址里面的数值。
三,如果按你的写法,p=a[i]应该放在第一个循环里初始化…其实二维数组数值想加方法很多,也可以考虑其他的。
知道了,谢谢你啦
本回答由提问者推荐
C语言有哪些函数?
#include #include int main()flOAt a,b,C,S;printf("请输入长方形的长\n");scanf("%f",&a);printf("请输入长方形的宽\n");scanf("%f",&b);C=(a+b)*2,S=a*b;printf("长方形的周长是%f面积是%f",C,S);return 0;C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
c语言编程 一个简单的函数
c语言编程函数
没有写函数的返回类型所以默认的是void型