C++ Прямая ** плоскости может быть задана уравнением ax+by=с, где a, b одновременно не...

0 голосов
69 просмотров

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


Информатика (94 баллов) | 69 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

#include
using namespace std;

int main() {
int a, b, c, n, i;
cout << "n = ";<br> cin >> n;
if (n < 3) {
cout << "Не может быть менее 3 прямых!" << endl;<br> return 2;
}
int aa[n], bb[n], cc[n];
cout << "Ввод в формате 'a b c'" << endl;<br> for (i = 0; i < n; i++) {
cout << "прямая " << i << ": ";<br> cin >> a >> b >> c;
if ((a == 0) && (b == 0)) {
cout << "Оба коэффициента равны 0, повторите ввод." << endl;<br> 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;<br> return 0;
}
}
}
}
cout << "Среди данных прямых нет трёх пересекающихся." << endl;<br> return 1;
}

(7.2k баллов)