#include <stdio.h> int main() { int change(int *p1, int n); int sort(int a[],int n); int a[10]; int x=1,b; int *p1,*p2; printf("请输入10个数到数组中/n"); for (b=0;b<10;b++,x++) { printf("A[%d]=",x); scanf("%d",&a[b]); } printf("该数组中10个元素为/n"); //以上为输入10个元素到数组中 for (b=0;b<10;b++,p1++) { printf(" %d/n",*p1); } //以上为循环输出 用指针 p1=a; p2=a; //p1 p2指向a change(p1,10); //传出p1 调用change函数 printf("该数组中10个元素从大到小排序为/n"); for (p1=a,b=0;b<10;b++,p1++) { printf(" %d ",*p1); } printf("/n"); sort(p2,10); //传出p2 调用sort函数 printf("该数组中10个元素从大到小排序为/n"); for (p2=a,b=0;b<10;b++,p2++) { printf(" %d ",*p2); } printf("/n"); //以上为循环输出 用指针 system ("pause"); } int change(int *p,int n) //指针做形参接收 { int i,j,k,t; for(i=0;i<10;i++) { k=i; for(j=i+1;j<n;j++) { if(*(p+j)>*(p+k)) k=j; } if(k!=i) { t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; } } } int sort(int a[],int n) //数组名做形参接收 { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) { if(a[j]>a[k]) k=j; if(k!=i) { t=a[i];a[i]=a[k];a[k]=t; } } } }