C++ Прямая на плоскости может быть задана уравнением ax+by=с, где a, b одновременно не равны нулю, а, b, с – целые. Пусть даны коэффициенты нескольких прямых a1, b1, c1, a2, b2, c2, … , an, bn, cn. Определите, имеются ли среди этих прямых три, пересекаю- щиеся в одной точке.

Вопрос школьника по предмету Информатика

C++ Прямая на плоскости может быть задана уравнением ax+by=с,
где a, b одновременно не равны нулю, а, b, с – целые. Пусть даны
коэффициенты нескольких прямых a1, b1, c1, a2, b2, c2, … , an, bn,
cn. Определите, имеются ли среди этих прямых три, пересекаю-
щиеся в одной точке.

Ответ учителя по предмету Информатика

#include <iostream>

using namespace std;

int main() {

int a, b, c, n, i;

cout << «n = «;

cin >> n;

if (n < 3) {

cout << «Не может быть менее 3 прямых!» << endl;

return 2;

}

int aa[n], bb[n], cc[n];

cout << «Ввод в формате ‘a b c'» << endl;

for (i = 0; i < n; i++) {

cout << «прямая » << i << «: «;

cin >> a >> b >> c;

if ((a == 0) && (b == 0)) {

cout << «Оба коэффициента равны 0, повторите ввод.» << endl;

i—;

}

else {

aa[i] = a;

bb[i] = b;

cc[i] = c;

}

}

for (i = 0; i < n; i++) {

a = aa[i];

b = bb[i];

c = cc[i];

for (int j = 0; j < n; j++) {

if (j == i) continue;

if (aa[i] / aa[j] == bb[i] / bb[j]) {

for (int k = 0; k < n; k++) {

if ((k == i) || (k == j)) continue;

if (aa[i] / aa[k] == bb[i] / bb[k])

cout << «прямые » << i << «, » << j << » и » << k << » пересекаются.» << endl;

return 0;

}

}

}

}

cout << «Среди данных прямых нет трёх пересекающихся.» << endl;

return 1;

}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей