Определить, лежат ли точки на одной прямой - C (СИ) (79191)
Формулировка задачи:
int main(int argc, char** argv) { int x1, y1, x2, y2, x3, y3; int d1, d2, d3; printf("Координаты точки A:\n"); if (scanf("%d%d", &x1, &y1) != 2) { printf("Неверный ввод.\n"); return 0; } printf("Координаты точки В:\n"); if (scanf("%d %d", &x2, &y2) != 2) { printf("Неверный ввод.\n"); return 0; } printf("Координаты точки C:\n"); if (scanf("%d %d", &x3, &y3) != 2) { printf("Неверный ввод.\n"); return 0; } if (((x1 - x2) == (y2 - y1))) { printf("Точки совпадают.\n"); return 0; } else if (((x2 - x3) == (x3 - y2))) { printf("Точки совпадают.\n"); return 0; } else if (((x1 - x3) == (y3 - y1))) { printf("Точки совпадают.\n"); return 0; } d1 = sqrt(((x1 * x1) + (x2 * x2) - 2 * x1 * x2) + ((y1 * y1) + (y2 * y2) - 2 * y1 * y2)); d2 = sqrt(((x1 * x1) + (x3 * x3) - 2 * x1 * x3) + ((y1 * y1) + (y3 * y3) - 2 * y1 * y3)); d3 = sqrt(((x2 * x2) + (x3 * x3) - 2 * x2 * x3) + ((y2 * y2) + (y3 * y3) - 2 * y2 * y3)); double z1 = (double)((y3 * x2)-(y3 * x1)-(y1 * x2)+(y1 * x1)); double z2 = (double)((y2 * x3)-(y2 * x1)-(y1 * x3)+(y1 * x1)); if (z1 == z2) printf("Точки лежат на одной прямой.\n"); { if ((d1 > d2) && (d2 > d3)) printf("Между А и С точка B.\n"); if ((d1 > d3) && (d3 > d2)) printf("Между А и В точка C.\n"); if ((d2 > d1) && (d1 > d3)) printf("Между В и С точка A.\n");} else { printf("Точки не лежат на одной прямой.\n"); } return (EXIT_SUCCESS); }
Решение задачи: «Определить, лежат ли точки на одной прямой»
textual
Листинг программы
if (z1 == z2){ printf("Точки лежат на одной прямой.\n"); if ((d1 > d2) && (d2 > d3)) printf("Между А и С точка B.\n"); if ((d1 > d3) && (d3 > d2)) printf("Между А и В точка C.\n"); if ((d2 > d1) && (d1 > d3)) printf("Между В и С точка A.\n");} else { printf("Точки не лежат на одной прямой.\n"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д