/* * プログラミング演習 第 13 回 * [例題 3] * (C) 2006 Hirohisa AMAN */ #include #include int main(void){ char a[5][16]; char tmp[16]; int n, m, i, c; for ( c = 0; c < 5; c++ ){ printf("%d > ", c+1); fgets(a[c], 16, stdin); } for ( n = 4; n >= 0; n-- ){ m = 0; /* a[0] が辞書式順で一番後ろと仮定 */ for ( i = 1; i <= n; i++ ){ if ( strcmp(a[m], a[i]) < 0 ){ m = i; /* 一番後ろ(最大)位置の更新 */ } } if ( m < n ){ /* a[m] と a[n] の値を交換 */ strcpy(tmp, a[m]); strcpy(a[m], a[n]); strcpy(a[n], tmp); } } for ( c = 0; c < 5; c++ ){ printf("%s", a[c]); } return 0; }