Определить, лежат ли точки на одной прямой - C (СИ) (79191)

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. int main(int argc, char** argv) {
  2. int x1, y1, x2, y2, x3, y3;
  3. int d1, d2, d3;
  4. printf("Координаты точки A:\n");
  5. if (scanf("%d%d", &x1, &y1) != 2) {
  6. printf("Неверный ввод.\n");
  7. return 0;
  8. }
  9. printf("Координаты точки В:\n");
  10. if (scanf("%d %d", &x2, &y2) != 2) {
  11. printf("Неверный ввод.\n");
  12. return 0;
  13. }
  14. printf("Координаты точки C:\n");
  15. if (scanf("%d %d", &x3, &y3) != 2) {
  16. printf("Неверный ввод.\n");
  17. return 0;
  18. }
  19. if (((x1 - x2) == (y2 - y1))) {
  20. printf("Точки совпадают.\n");
  21. return 0;
  22. } else if (((x2 - x3) == (x3 - y2))) {
  23. printf("Точки совпадают.\n");
  24. return 0;
  25. } else if (((x1 - x3) == (y3 - y1))) {
  26. printf("Точки совпадают.\n");
  27. return 0;
  28. }
  29. d1 = sqrt(((x1 * x1) + (x2 * x2) - 2 * x1 * x2) + ((y1 * y1) + (y2 * y2) - 2 * y1 * y2));
  30. d2 = sqrt(((x1 * x1) + (x3 * x3) - 2 * x1 * x3) + ((y1 * y1) + (y3 * y3) - 2 * y1 * y3));
  31. d3 = sqrt(((x2 * x2) + (x3 * x3) - 2 * x2 * x3) + ((y2 * y2) + (y3 * y3) - 2 * y2 * y3));
  32. double z1 = (double)((y3 * x2)-(y3 * x1)-(y1 * x2)+(y1 * x1));
  33. double z2 = (double)((y2 * x3)-(y2 * x1)-(y1 * x3)+(y1 * x1));
  34. if (z1 == z2)
  35. printf("Точки лежат на одной прямой.\n"); {
  36.  
  37. if ((d1 > d2) && (d2 > d3))
  38. printf("Между А и С точка B.\n");
  39. if ((d1 > d3) && (d3 > d2))
  40. printf("Между А и В точка C.\n");
  41. if ((d2 > d1) && (d1 > d3))
  42. printf("Между В и С точка A.\n");}
  43. else {
  44. printf("Точки не лежат на одной прямой.\n");
  45. }
  46.  
  47. return (EXIT_SUCCESS);
  48. }
ругается на else { printf("Точки не лежат на одной прямой.\n"); }

Решение задачи: «Определить, лежат ли точки на одной прямой»

textual
Листинг программы
  1.     if (z1 == z2){
  2.         printf("Точки лежат на одной прямой.\n");
  3.  
  4.  
  5.     if ((d1 > d2) && (d2 > d3))
  6.         printf("Между А и С точка B.\n");
  7.  
  8.     if ((d1 > d3) && (d3 > d2))
  9.         printf("Между А и В точка C.\n");
  10.  
  11.     if ((d2 > d1) && (d1 > d3))
  12.         printf("Между В и С точка A.\n");}
  13.  
  14.     else {
  15.         printf("Точки не лежат на одной прямой.\n");
  16.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы