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

練習 3(提出プログラム名:p1303a.c)

まず,このプログラム(p1303a.c)をダウンロードしなさい.
p1303a.c では PLAYER という構造体を定義しており,この構造体は X-Y 平面上を移動する
ゲームのプレイヤーを表している.
構造体のメンバは
  namexy
の 3 つであり,name がプレイヤーの名前,xy はそのプレイヤーの現在地(座標)である.

p1303a.c では MAX 人分MAX はマクロとして定義してある)のプレイヤー情報(名前と位置座標)をファイルから読み込み,
各自の近くに位置している他のプレイヤーの名前を表示させようとしているが未完成となっている.
関数 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 関数の内容は一切変更しないこと.

データファイル名を入力してください:data1303a1.txt
データファイルから 6 人分のデータを読み込みました.

aman さんの近くにいる人(たち):shiro さん;
taro さんの近くにいる人(たち):saburo さん; goro さん;
jiro さんの近くにいる人(たち):
saburo さんの近くにいる人(たち):taro さん; goro さん;
shiro さんの近くにいる人(たち):aman さん;
goro さんの近くにいる人(たち):taro さん; saburo さん;
データファイル名を入力してください:data1303a2.txt
データファイルから 6 人分のデータを読み込みました.

aman さんの近くにいる人(たち):shiro さん; goro さん;
taro さんの近くにいる人(たち):saburo さん;
jiro さんの近くにいる人(たち):
saburo さんの近くにいる人(たち):taro さん;
shiro さんの近くにいる人(たち):aman さん; goro さん;
goro さんの近くにいる人(たち):aman さん; shiro さん;

【過去にあったミス(減点となり,やり直しを命じられる)】
2 種類の実行例を確認せずに提出してしまっている.
 (例1)本人を近くにいる人として表示させてしまっている.
 (例2)位置座標が重なっている場合(実行例その2の aman と goro)について,うまく表示できていない.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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