[求助] 程序错在哪里
											题目:编制函数,接受从主调函数传入的、有n个元素的一维数组首地址,对该数组按绝对值从小到大排序。
我的程序如下:
#include<stdio.h>                                                                                                                                                     
#include<math.h>
void main()
{float ei(float *,int),*p;int i,n;
 
 scanf("%d",&n);
 for(i=0;i<n;i++)scanf("%f",&p[i]);
  ei(p,n);
  for(i=0;i<n;i++)
  printf("%f\n",p[i]);
}
float ei(float *a,int m)
{ int k,j;float temp;
 for(k=0;k<m-1;k++)
  for(j=k;fabs(a[j])>fabs(a[j+1])&&j>=0;j--)
  { temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
 
   return *a;
}
问题:该程序能够输出正确结果,但不能正常停止,是被强制关闭的,这是怎么回事?我用的是Borland C++。
请帮我改正一下,谢谢。



											
	    

	