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 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; }
Не нашли ответ?
Ответить на вопрос
Похожие вопросы