【課題3−5】 提出課題(2) 次のプログラムは,文字列"January"", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"を文字数の少ない順に表示するものである.下の空欄A〜Dを埋めよ. #include #include #define M_NUM 12 int main(void) { char month[M_NUM][10] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; int i, len; int m_len = 0; // 現在出力中の文字数 int out_cnt = 0; // 出力数 while (out_cnt <「 A 」) { // 12ヶ月分表示されるまでループ for (i = 0; i < M_NUM; i++) { len = 「   B   」; if (len == m_len) { printf("%-10s : ", 「 C 」); printf("%d letters¥n", len); out_cnt++; } } 「  D  」; } return 0; } 【実行結果】 May : 3 letters June : 4 letters July : 4 letters March : 5 letters April : 5 letters August : 6 letters January : 7 letters October : 7 letters February : 8 letters November : 8 letters December : 8 letters September : 9 letters 【解説とヒント】 文字数が少ない順に表示するだけなので,並び替えの必要はない.0文字から順に出力文字数を増やし,出力文字数と一致する長さの文字列を表示する. 文字列の長さはstrlen()関数を使って取得する. strlen関数:文字列の長さの取得 形式:int strlen(const char *s); 機能:文字列*sの長さを取得し返却する.長さに'¥0'は含まない. 返値:文字列*sの長さ.