Given three points (x1, y1), (x2, y2) and (x3, y3), write a C program to check if all the three points fall on one straight line.
Note: (x1, y1), (x2, y2) and (x3, y3) are called co-ordinates of x and y axis.
Related Read:
Basic Arithmetic Operations In C
Expected Output for the Input
User Input:
Enter points (x1, y1)
1
2
Enter points (x2, y2)
3
4
Enter points (x3, y3)
5
6
Output:
All 3 points lie on the same straight line.
Formula To Calculate Slope of 2 points
Slope of points (x1, y1) and (x2, y2) = m;
m = (y2 – y1) / (x2 – x1);
Slope of points (x2, y2) and (x3, y3) = n;
n = (y3 – y2) / (x3 – x2);
Logic To Check If Three Points Are On One Straight Line
We ask the user to enter all 3 points (x1, y1), (x2, y2) and (x3, y3). Next we calculate slope of (x1, y1), (x2, y2) and (x2, y2) (x3, y3). If slopes of both these points are equal, then all these 3 points lie on same straight line.
Video Tutorial: C Program To Check If Three Points Are On Same Straight Line
[youtube https://www.youtube.com/watch?v=nC-jPDhDFT0]
Source Code: C Program To Check If Three Points Are On One Straight Line
#include < stdio.h > int main() { float x1, y1, x2, y2, x3, y3, m, n; printf("Enter points (x1, y1)\n"); scanf("%f%f", &x1, &y1); printf("Enter points (x2, y2)\n"); scanf("%f%f", &x2, &y2); printf("Enter points (x3, y3)\n"); scanf("%f%f", &x3, &y3); m = (y2 - y1) / (x2 - x1); n = (y3 - y2) / (x3 - x2); if( m == n) { printf("All 3 points lie on the same line\n"); } else { printf("All 3 points do not lie on the same line\n"); } return 0; }
Output 1:
Enter points (x1, y1)
-2
2
Enter points (x2, y2)
2
5
Enter points (x3, y3)
6
8
All 3 points lie on the same straight line.
Output 2:
Enter points (x1, y1)
1
2
Enter points (x2, y2)
3
4
Enter points (x3, y3)
-10
15
All 3 points do not lie on the same straight line.
For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List
For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert