Вопрос школьника по предмету Информатика
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;
}
Похожие вопросы от пользователей
Олень—
Завдання—
Діалог—