代码:
#include <stdio.h>
#define N 3
int main(){
int num[N],*p=num;
void sort(int *p);
printf("请输入%d个数:\n",N);
for(int i=0;i<N;i++){
scanf("%d",&num[i]);
}
printf("--------------\n");
printf("您输入的%d个数原来的顺序为:\n",N);
for(int i=0;i<N;i++){
printf("%d ",num[i]);
}
printf("\n");
sort(p);
return 0;
}
void sort(int *p){
int temp,min=*p;
//num[N]值未变,而只是指针指向的位置变了,从而打印出来的值变了
printf("--------------\n");
printf("您输入的%d个数从小到大的顺序为:\n",N);
for(int i=0;i<N;i++){
//不能设置i<N-1,否则打印会缺失最后一位数
min=*(p+i);
for(int j=i;j<N;j++){
if(*(p+j)<min){
temp=min;
min=*(p+j);
*(p+j)=temp;
}
}
printf("%d ",min);
}
}
运行结果: