p数组元素是int*,你没有给他们分配空间啊。
参考如下:
#include<stdio.h>
void sort(int *a, int n)
{
int i,j,t,noswap;
for(i=0;i< n-1; i++)
{
noswap=1;
for(j=n-1;j>i;j--)
if(*(a + j - 1) < *(a + j))
{
t=*(a + j - 1);
*(a + j - 1)= *(a + j);
*(a + j)=t;
noswap=0;
}
if(noswap)
break;
}
}
int main()
{
int n;
printf("Input n:");
scanf("%d", &n);
printf("Input %d numbers:", n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
sort(a, n);
printf("Sorting results:");
for (int i = 0; i < n; i++) {
printf("%4d", a[i]);
}
return 0;
}
如有帮助,欢迎采纳哈!