你自定义sum函数时,形式参数定义的是float形式的一维数组,而你调用此函数时,实参是二维数组b的行地址,这怎么行了?你的这个程序可以不用这样写二维数组的地址是个难点啊……
樱花下落的速度依然是秒速五厘米,即使发了一千次短信,
心与心之间也只能靠近一厘米……
#include<stdio.h> #include<math.h> main() { float a[3],b[3][3]; int i,j; void sum(float c[][3]);/* 声明函数sum */ printf("请输入3*3数组:\n");/* 输入3*3数组 */ for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%f",&b[i][j]); printf("\n"); for(i=0;i<3;i++)/* 循环 */ sum(b);/* 调用sum,并将sum函数返回值赋值给a[i] */ } void sum(float c[][3])/* 自定义的sum函数 */ { float s=0; int j; static int i; for(j=0;j<3;j++) s+=c[i][j]; i++; printf("第%d行的和为:%f\n",i,s);//循环输出; }附带运行结果,我是在vc++6.0环境下编译的。