c语言怎么用return返回一个数组,并输出,程序如下

c语言如何用return返回一个数组,并输出,,程序如下
#include<stdio.h>
int main()
{
  int a[10]={1,2,5,4,7,8,9,10,3,6},*p;
  int *score(int a[10],int n);
  int i;
  p=score(a,10);
  for(i=0;i<3;i++,p++)
  printf("%d ",*p);
}

int *score(int a[10],int n)
{
  int i,max=a[0],min=a[0],sum=a[0],average,b[3];
  for(i=1;i<n;i++)
  {
     if(max<a[i]) max=a[i];
 if(min>a[i]) min=a[i];
 sum=sum+a[i];
  }
  average=sum/n;
  b[0]=max;
  b[1]=min;
  b[2]=average;
  return (b);
}我输出时,只有一个是返回正确的,后面输出的乱七八糟。。。是用vc++6.0来实行的,求高手解答

------解决方案--------------------
b是个局部变量 不能这么干的
------解决方案--------------------
b[3]在函数结束时就释放掉了内存了  你可以加一个参数 数组 用来接收要的结果 也可以全局数组来接收