/*
Given two coordinates, Print the line equation.
Objective ->
Given two coordinates (x1,y1) and (x2,y2), write a C program to construct a line equation that
passes through the given coordinates.
A(3,7) B(5,11)
A(2,2) B(4,12)_
*/
#include <stdio.h>
struct TPoint {
float x,
y;
};
typedef struct TPoint Point;
void read(Point *P) {
}
float computeSlope(Point A, Point B) {
return (B.y - A.y) / (B.x - A.x);
}
void createEquation(Point A, Point B) {
float m, a, b;
m = computeSlope(A, B);
a = m;
b = A.y - m * A.x;
if(m
== 0) printf("Line Equation -> y = %.2f\n", A.
y);
else {
if(b
> 0) printf("Line Equation -> y = %.2f * x + %.2f\n", a
, b
);
else
printf("Line Equation -> y = %.2f * x - %.2f\n", a
, b
*(-1)); }
};
int main() {
Point A, B;
read(&A);
read(&B);
createEquation(A, B);
return(0);
}
LyoKICBHaXZlbiB0d28gY29vcmRpbmF0ZXMsIFByaW50IHRoZSBsaW5lIGVxdWF0aW9uLgogIE9iamVjdGl2ZSAtPiAKICAgICAgICAgICAgR2l2ZW4gdHdvIGNvb3JkaW5hdGVzICh4MSx5MSkgYW5kICh4Mix5MiksIHdyaXRlIGEgQyBwcm9ncmFtIHRvIGNvbnN0cnVjdCBhIGxpbmUgZXF1YXRpb24gdGhhdAogICAgICAgICAgICBwYXNzZXMgdGhyb3VnaCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMuCiAgICAgICAgICAgIEEoMyw3KSBCKDUsMTEpCiAgICAgICAgICAgIEEoMiwyKSBCKDQsMTIpXwogKi8KI2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3QgVFBvaW50IHsKCSBmbG9hdCB4LAoJICAgICAgIHk7Cn07Cgp0eXBlZGVmIHN0cnVjdCBUUG9pbnQgUG9pbnQ7Cgp2b2lkIHJlYWQoUG9pbnQgKlApIHsKCiAgICAgcHJpbnRmKCJBYnMgLT4gIik7ICAKICAgICBzY2FuZigiJWYiLCAmUC0+eCk7CgogICAgIHByaW50ZigiT3JkIC0+ICIpOyAgCiAgICAgc2NhbmYoIiVmIiwgJlAtPnkpOwp9CgpmbG9hdCBjb21wdXRlU2xvcGUoUG9pbnQgQSwgUG9pbnQgQikgewoKICAgICAgcmV0dXJuIChCLnkgLSBBLnkpIC8gKEIueCAtIEEueCk7Cn0KCnZvaWQgY3JlYXRlRXF1YXRpb24oUG9pbnQgQSwgUG9pbnQgQikgewoKICAgICAgZmxvYXQgbSwgYSwgYjsKCiAgICAgIG0gPSBjb21wdXRlU2xvcGUoQSwgQik7CgogICAgICBhID0gbTsKICAgICAgYiA9IEEueSAtIG0gKiBBLng7IAoKICAgICAgaWYobSA9PSAwKSBwcmludGYoIkxpbmUgRXF1YXRpb24gIC0+IHkgPSAlLjJmXG4iLCBBLnkpOwoKICAgICAgZWxzZSB7ICAKICAgICAgICAgICAgaWYoYiA+IDApIHByaW50ZigiTGluZSBFcXVhdGlvbiAgLT4geSA9ICUuMmYgKiB4ICsgJS4yZlxuIiwgYSwgYik7CgogICAgICAgICAgICAgICAgZWxzZSAKCiAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIkxpbmUgRXF1YXRpb24gIC0+IHkgPSAlLjJmICogeCAtICUuMmZcbiIsIGEsIGIqKC0xKSk7ICAgICAgCiAgICAgICAgICAgfSAgICAgICAKfTsgICAgICAgICAgICAKCmludCBtYWluKCkgewoKCVBvaW50IEEsIEI7CgoJcmVhZCgmQSk7CglyZWFkKCZCKTsKCWNyZWF0ZUVxdWF0aW9uKEEsIEIpOwoKCXJldHVybigwKTsKfQ==