你自定义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环境下编译的。
