//samp.c #include #include typedef struct { long id; char name[9]; float height; double score; int rank; // 名次 } Student; Student x[999]; int getData( ); void printData(int n, int flag); void sort( ) { } int main( ) { int nStu; nStu = getData( ); printData(nStu, 0); printf("=== ===\n"); sort( ); printData(nStu, 1); return 0; } int getData( ){ static char cn[ ][3]={ "趙", "錢", "孫", "李", "陳", "林"}; static char first[ ][5]= { "阿三", "小弟", "三8", "4久", "小五", "阿水", "大華" }; int cnLen = (sizeof(cn) / sizeof(cn[0]) ); int firstLen =(sizeof(first) / sizeof(first[0]) ); int i, k, n; long baseID = 9817000; k = 5; // example for(i=1; i<= k; ++i) { // 第 0 個故意不用 x[i].id = baseID + i; n = rand( ) % cnLen; strcpy(x[i].name, cn[n]); n = rand( ) % firstLen; strcat(x[i].name, first[n]); } return k; } void printData(int n, int flag){ //印出 n 個人的 data, x[1] .. x[n]; 注意第 0 個故意不用 // flag == 0 表示不印名次 int i; for(i=1; i<=n; ++i) { printf("%ld ", x[i].id); printf("%9s ", x[i].name); if(flag!=0) printf(" %3d", x[i].rank); printf("\n"); } }