数组与指针的小问题

c语言中怎样调用返回类型为数组的函数

#include<stdio.h>
float Max[20],Min[20];
float *average(float a[][20],int i,int j)
{
int m,n;
for(j=0;j<n;j++)
{Max[0]=Min[0]=a[0][j];
float sum[20],aver[20];
sum[0]=a[0][j];
for(i=0;i<m;i++)
{ sum[j]+=a[i][j];
if(a[i][j]>Max[j])Max[j]=a[i][j];
else if(a[i][j]<Min[j])Min[j]=a[i][j];
}
aver[j]=sum[j]/m;

return(aver);
}

}


void main()
{
float ave[20],score[50][20];
int p,q,k;
for(p=0;p<50;p++)
for(q=0;q<20;q++)
scanf("%f",&score[p][q]);
ave[]=average(score,p,q);

for(k=0;k<20;k++)
{ printf("最大值=%6.2f",Max[k]);}

for(k=0;k<20;k++)
{ printf("/n最小值=%6.2f",Min[k]);}

for(k=0;k<20;k++)
{ printf("/n平均值=%6.2f",ave[k]);}
}

memcpy(ave, average(score,p,q), sizeof(ave));
要显式的把返回的数组数据拷贝到另一个数组中。
另外,你average函数中的aver是局部变量,你怎么能把它返回呢?这块内存在返回前就失效了。

你可能感兴趣的:(c,语言,float)