Определить, лежат ли точки на одной прямой - 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);
}
ругается на else { printf("Точки не лежат на одной прямой.\n"); }

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

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");
    }

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


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

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

11   голосов , оценка 3.818 из 5
Похожие ответы