【課題3−14】 提出課題(6) 次のプログラムは,"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"の10個の文字列を,ポインタの配列を用いて宣言し,基本選択法を用いて,辞書順に並び替えるものである.下の空欄A〜Dを埋めよ. #include #include #define N 10 int main(void) { char 「 A 」={ //ポインタの配列pを宣言し各文字列のアドレスで初期化 "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" }; char 「 B 」; //作業用のポインタtempを宣言 int i, j, min; for (i = 0; i < N-1; i++) { //i以降で最小の文字列を検索 min = i; for (j = i+1; j < N; j++) { /* 文字列の比較 */ if (「   C   」) { min = 「 D 」; } } /*ポインタの配列の入れ替え(最小値をi番目と交換)*/ temp = p[i]; p[i] = p[min]; p[min] = temp; } for (i = 0; i < N; i++) printf("%s¥n", p[i]); return 0; } 【実行結果】 eight five four nine one seven six ten three two 【解説とヒント】 ポインタの配列pの指す文字列をstrcmpを用いて大小比較し,pに格納されている文字列のアドレスを,昇順になるように並び替える. strcmp関数:文字列の比較 形式:int strcmp(const char *s1, const char *s2); 機能:文字列*s1と文字列*s2を比較する. 返値:辞書順の大小関係を比較し,s1 > s2で正の値,s1 < s2で負の値,s1 = s2で0を返す.