用指针将一个数组中元素进行排序的程序,但是有问题,我发现不了
#include<stdio.h>void rank(int *x,int n);
main()
{
int a[10]={1,2,3,5,6,7,8,77,9,99},i;
rank(a,10);
for(i=0;i<10;i++)
printf("%3d",*(a+i));
printf("\n");
}
void rank(int *x,int n)
{
int i,*p,max,tem,j;
p=x;
for(i=0;i<n-1;i++)
{
max=i;
for(j=1+i;j<n;j++)
{
if(*(p+j)>*(p+max))
max=j;
}
tem=*(p+max);
*(p+max)=*(p+j);
*(p+j)=tem;
}
}//这个程序有问题,数组中元素的排列