#include<stdio.h>
int main()
{
void paixu(int x[ ],int n);
int arr[10],i,*p;
p=arr;
printf("请输入10个数\n");
for(i=0;i<10;i++)
scanf("%d",p++);
paixu(p,10);
for(p=arr,i=0;i<10;i++)
{
printf("%d",*p);
p++;
}
printf("\n");
return 0;
}
void paixu(int x[ ],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(x[j]>x[k])k=j;
if(k!=i)
{
t=x[i];
x[i]=x[k];
x[k]=t;
}
}
}
paixu(p,10);这一句前面加上一句:p = arr;//把指针重新移动到数组头
你在调用paixu函数之前应该把p重新置为数组(因为你在获取输入时已经让p等于数组末尾之后的地址了)
int main()
{
void paixu(int x[], int n);
int arr[10], i, *p;
p = arr;
printf("请输入10个数\n");
for (i = 0; i < 10; i++)
scanf("%d", p++);
p = arr;
paixu(p, 10);
for (p = arr, i = 0; i < 10; i++)
{
printf("%d", *p);
p++;
}
printf("\n");
return 0;
}