求指导,程序运行时停止工作。且想求教如果子函数定义时用*a[3], 下面的主函数调用时怎么调用。例如二维数组int ma(int *[3]),调用时用ma(a
#include <stdio.h>float matrix(float(*a)[3],int n)
{
int i,j;
float sum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(i==j) sum=sum+*(*(a+i)+j);
if(j==2-i&&i!=j)sum=sum+*(*(a+i)+2-i);
}
return sum;
}
int main()
{
int i,j;
float a[3][3];
printf("please input 3*3 array:\n");
for(i=0; i<3; i++)
for(j=0;j<3;j++)
scanf("%f",a[i][j]);
printf("sum=%0.2f\n",matrix(a,3));
printf("\n");
return 0;
运行总是停止工作。而且之前的代码在定义子函数时,是 float matrix(float*a[3],int n) 。