[求助] 程序错在哪里
题目:编制函数,接受从主调函数传入的、有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++。
请帮我改正一下,谢谢。