一纬数组
#include "stdio.h" void main() { int i,a[10]={9,4,6,2,7,0,1,5,3,8}; sort(a+1,10); for(i =0;i<=9;i++) { printf("%3d",*(a+i)); } } sort(p,n) int *p,n; { int i,t,*pj; for(i=1;i<n;i++) { for(pj= p+n-1;pj>p+i-1;pj--) { if(*(pj-1)>*pj) { t=*pj; *pj=*(pj-1); *(pj-1)=t; } } } }
二维数组
#include "stdio.h" void main() { int i,j,a[2][10]={{9,4,6,2,7,0,1,5,3,8},{9,4,6,2,7,0,1,5,3,8}}; printf("Befort sort :\n"); for(i = 0;i<2;i++) { for(j=0;j<10;j++) { printf("%3d",a[i][j]); } printf("\n"); } /*这里这儿 *(a+1)就是访问第二行 */ sort(*(a+1),10); printf("\nAfter sort :\n"); for(i =0;i<=1;i++) { for(j=0;j<10;j++) { printf("%3d",*(*(a+i)+j)); } printf("\n"); } } sort(p,n) int *p,n; { int i,t,*pj; for(i=1;i<n;i++) { for(pj= p+n-1;pj>p+i-1;pj--) { if(*(pj-1)>*pj) { t=*pj; *pj=*(pj-1); *(pj-1)=t; } } } }