中小企業の働き方改革をサポート>>

2次元平面上の2点間の距離
[問題]平面上の点の数 n( n ≦ 100 ),及び,n 個の点の座標を配列 x,及び,y に読み込み,すべての点の間の距離を計算し,その距離が最大になる点の組(2つの点の座標.最初に入力した点の座標を最初),及び,その距離を出力するプログラムを書け.

(入力例) コメントの部分は除く
3   // 点の数
0 10   // 1 番目の点の x 及び y 座標
0 0   // 2 番目の点の x 及び y 座標
20 0   // 3 番目の点の x 及び y 座標
(出力例) コメントの部分は除く
0 10   // 1 番目の点の x 及び y 座標
20 0   // 3 番目の点の x 及び y 座標
22.36・・・   // 2点間の距離
#include <iostream>
#include <math.h>

int main()
{
double max = 0.0, x[100], x1, y[100], y1, r;
int i1, i2, n, m1, m2;
// 点の数
std::cin >> n;
// 点の座標の入力
for (i1 = 0; i1 < n; i1++)
std::cin >> x[i1] >> y[i1];
// 点間の距離の計算
for (i1 = 0; i1 < n-1; i1++) {
for (i2 = i1+1; i2 < n; i2++) {
x1 = x[i1] - x[i2];
y1 = y[i1] - y[i2];
r = sqrt(x1 * x1 + y1 * y1);
if (r > max) {
max = r;
m1 = i1;
m2 = i2;
}
}
}
// 出力
std::cout << x[m1] << " " << y[m1] << std::endl;
std::cout << x[m2] << " " << y[m2] << std::endl;
std::cout << max << std::endl;

return 0;
}

A 回答 (2件)

しいていえば、意識、かなぁ。

    • good
    • 0

http://c.oshiete.goo.ne.jp/oshiete_category.php3 …
に「質問の内容が分かりやすいタイトルを書いてください」とあります
質問文のタイトルを変えてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング