練習 [14] 構造体(3/5)

練習 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 座標の差dxy 座標の差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 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 練習 4 (p1404.c) ]