※ ChatGPTを利用し、要約された質問です(原文:どこを変えればいいか教えてください。)
2次元平面上の点と原点との距離の計算と出力
2次元平面上の点と原点との距離
[問題]平面上の点の数 n( n ≦ 100 ),及び,n 個の点の座標を配列 x,及び,y に読み込み,原点 (0, 0) からの平均距離を計算した後,平均距離,原点からの距離が(平均距離-4)以上で,かつ,(平均距離+18)以下であるすべての点の座標,及び,その数を出力するプログラムを書け(座標は,入力された順に出力).
(入力例) コメントの部分は除く
3 // 点の数
10 20 // 1 番目の点の x 及び y 座標
30 20 // 2 番目の点の x 及び y 座標
20 30 // 3 番目の点の x 及び y 座標
(出力例) コメントの部分は除く
31.49・・・ // 平均距離
30 20 // 2 番目の点の x 及び y 座標
20 30 // 3 番目の点の x 及び y 座標
2 // 点の数
#include <iostream>
#include <math.h>
int main()
{
double mean = 0.0, x[100], y[100], r[100];
int i1, k = 0, n;
// _ ̐
std::cin >> n;
// _ ̍ W ̓ ͂ƕ ϋ ̌v Z
for (i1 = 0; i1 < n; i1++) {
std::cin >> x[i1] >> y[i1];
r[i1] = sqrt(x[i1] * x[i1] + y[i1] * y[i1]);
mean += r[i1];
}
mean /= n;
// i ϋ {10 j ȏ㗣 ꂽ _ ̏o
std::cout << mean << std::endl;
for (i1 = 0; i1 < n; i1++) {
if (r[i1] >= mean+10.0) {
std::cout << x[i1] << " " << y[i1] << std::endl;
k++;
}
}
std::cout << k << std::endl;
return 0;
}