練習 3(提出プログラム名:p1403.c)
まず,このプログラム(p1403.c)をダウンロードしなさい.
p1403.c はサンプルプログラム4(sample4.c)を次のように編集しようとした途中のもの(未完成)となっている.以下の手順(3)の内容を完成させなさい.
【編集内容】
(1)マクロ MAX を 6 に変更する(変更済).
(2)プレイヤー情報をデータファイルから読み込むように変更する(変更済).
(3)注目しているプレイヤーの近くにいる他のプレイヤーを表示するための
関数 print_neighbor を新しく作成する(未完成).
(4)main 関数において,print_neighbor を呼出すように変更する(変更済).
【関数 print_neighbor の仕様】
■ 引数 a[ ] :全プレイヤーの情報が入った配列
■ 引数 k :注目しているプレイヤーの配列内での添字
(つまり,注目しているプレイヤーの情報は a[k] となる)
■ 動作内容:
a[k] に該当するプレイヤーの近くにいる他のプレイヤーの名前を表示する(実行例を参照).
ただし,ここでいう「近くにいる」とは,両者の x 座標の差を dx, y 座標の差を dy としたとき,
dx*dx + dy*dy < 10 が成立する場合をいう.(自分自身を誤って表示させないこと)
【注意】
ここでは添字が違っていれば別人と考えてよい(つまり i != k ならば,a[i] と a[k] は別人)
また,main 関数の内容は一切変更しないこと.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
(データファイル data3-1.txt はここから入手)
データファイル名を入力してください:data3-1.txt データファイルから 6 人分のデータを読み込みました.⏎ ⏎ aman さんの近くにいる人(たち):shiro さん;⏎ taro さんの近くにいる人(たち):saburo さん; goro さん;⏎ jiro さんの近くにいる人(たち):⏎ saburo さんの近くにいる人(たち):taro さん; goro さん;⏎ shiro さんの近くにいる人(たち):aman さん;⏎ goro さんの近くにいる人(たち):taro さん; saburo さん;⏎
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
(データファイル data3-2.txt はここから入手)
データファイル名を入力してください:data3-2.txt データファイルから 6 人分のデータを読み込みました.⏎ ⏎ aman さんの近くにいる人(たち):shiro さん; goro さん;⏎ taro さんの近くにいる人(たち):saburo さん;⏎ jiro さんの近くにいる人(たち):⏎ saburo さんの近くにいる人(たち):taro さん;⏎ shiro さんの近くにいる人(たち):aman さん; goro さん;⏎ goro さんの近くにいる人(たち):aman さん; shiro さん;⏎
【過去にあったミス(減点となり,やり直しを命じられる)】
■ 2 種類の実行例を確認せずに提出してしまっている.
(例1)本人を近くにいる人として表示させてしまっている.
(例2)位置座標が重なっている場合(実行例その2の aman と goro)について,うまく表示できていない.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 練習 2 (p1402.c) ]
ミスが無いことを確認したら次の問題へ → [ 練習 4 (p1404.c) ]