#include "stdafx.h" #include "stdio.h" void out_student(char (*p)[20],int n); char (*p)[20]Penunjuk data (penunjuk baris) void sort_student(char (*p)[20],int n); int main() {siswa char[3][20]; int i; untuk(i=0; i<3; i++) scanf("%s",*(siswa+i)); Masuk out_student(siswa,3); sort_student(siswa,3); out_student(siswa,3); mengembalikan 0;
} void out_student(char (*p)[20],int n) //(*p) alamat baris {int i; untuk(i=0; i<n; i++) printf("%s",*(p+i)); printf("\n");
}
//选择排序 void sort_student(char (*p)[20],int n) {int i,j; untuk(i=0; I<n-1; i++) {int pos=i; for(j=i+1; j<n; j++) {if(strcmp(*(p+j),*(p+pos)<0)) //strcmp(*(p+j),*(p+pos)<0) *(p+j) tidak dapat berupa alamat baris, itu harus berupa alamat kolom, alamat pertama dari array orde pertama {pos=j; }
}
} if(pos!=i) {char str[20]={'\0'}; strcpy(str,*(p+pos)); *(p+pos) Alamat kolom pertama garis pos, string swap strcpy(*(p+pos),*(p+i)); strcpy (*(p + i), str);
}
}
//总结:
/*二维数组表示(行地址,列地址) Penunjuk melintasi array Array karakter 2D (alamat baris, alamat kolom) */
|