質問: いつもお世話になっています。今度はパソコンと言葉のしり取りのゲームについての質問です。
回答: >47)なぜインクリメントする必要がありますか。 インクリメントしないと、配列の同じ場所だけを見続ける事になります。 fscanfの結果を格納する場所を1つずつずらす為にインクリメントしています。 以下の2行を1つにまとめて省略して書いてある状態だと思ってください。 lst[cnt].flg=0; cnt++; >48)文字列の長さは、この場合、どういう役割を果たしているのでしょうか。 配列の中には文字が入っています。文字全体の長さから-1した場所は その文字列の一番最後の文字になります。 しりとりなので、一番最後の文字が必要なのです。 ABCDならば4文字ですよね。 配列は0からスタートするので、最後の文字は配列の3番目にあります。 (文字の長さ4)-1が配列で考えた際の最後の文字の場所になるわけです。 50)lst[cnt].wdはどういう意味でしょうか。 lstにはCOMが使える全単語と過去にプレイヤーが答えた全単語が登録されています。 lst[cnt]は、まだ何も登録されていない場所を表しています。 つまり、「まだ何もデータが登録されていない場所に、今回プレイヤーが答えた単語を登録する」という処理を行っています。 51)説明全体がわかりません。 がんばって下さい・・・ wd_chkという関数で負けの判定チェックを行っています。 負けの条件に関しては問題文の冒頭に書かれているものと同等の判定をしているので 関数の中身と問題文の冒頭を見比べてください。 return -1;と書かれている行のひとつ上にあるif文が負け判定です。