用指向数组的指针,实现数组排序(从小到大版本)
下面是这个题目我的代码,但是不能输出排序后的版本
请问应该怎么改,改后的代码是什么样的?
#define N 10
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int a[N],*p,min,t;//a[N]是待排序的数组
int b[N]={0,1,2,3,4,5,6,7,8,9};//b[N]是a[N]的角标
int i,j;
p=a;
for(i=0;i<N;i++,p++)
{
*p=rand();
printf("%d ",*p);
}
p=b;
for(i=0;i<N;i++,p++)
{
min=*p;
for(j=i+1;j<N;j++,p++)
{
if(a[*p]<a[min])
{
min=*p;
}
}
t=min;
min=b[i];
b[i]=t;
}
printf("排序后为\n");
p=b;
for(i=0;i<N;i++,p++)
{
printf("%d ",a[*p]);
}
return 0;
}