समस्या विवरण
दिए गए n बिंदु (x, y निर्देशांक), निर्धारित करें कि क्या वे X-अक्ष, Y-अक्ष के समानांतर एक रेखा बनाते हैं, या किसी के समानांतर नहीं हैं।
नियम
- X-अक्ष के समानांतर: सभी y-निर्देशांक समान हैं
- Y-अक्ष के समानांतर: सभी x-निर्देशांक समान हैं
- किसी के समानांतर नहीं: x और y दोनों भिन्न हैं
उदाहरण
| बिंदु | आउटपुट | कारण |
|---|---|---|
| (2,1), (3,1), (4,1), (0,1) | X-अक्ष के समानांतर | सभी y=1 |
| (1,2), (1,3), (1,4), (1,0) | Y-अक्ष के समानांतर | सभी x=1 |
| (1,2), (2,3), (3,4) | किसी के समानांतर नहीं | x और y दोनों बदलते हैं |
| (5,5), (5,5), (5,5) | दोनों के समानांतर | एकल बिंदु (क्षय) |
C प्रोग्राम
#include <stdio.h>
#include <stdbool.h>
void check_parallel(int n, int points[][2]) {
if (n <= 1) {
printf("एकल बिंदु - दोनों अक्षों के समानांतर (क्षय मामला)\n");
return;
}
bool parallel_x = true; // सभी y समान?
bool parallel_y = true; // सभी x समान?
int first_x = points[0][0];
int first_y = points[0][1];
for (int i = 1; i < n; i++) {
if (points[i][0] != first_x) parallel_y = false;
if (points[i][1] != first_y) parallel_x = false;
}
if (parallel_x && parallel_y)
printf("एकल बिंदु - दोनों के समानांतर\n");
else if (parallel_x)
printf("X-अक्ष के समानांतर\n");
else if (parallel_y)
printf("Y-अक्ष के समानांतर\n");
else
printf("किसी अक्ष के समानांतर नहीं\n");
}
int main() {
int n;
printf("बिंदुओं की संख्या: ");
scanf("%d", &n);
int points[n][2];
for (int i = 0; i < n; i++) {
printf("बिंदु %d (x y): ", i+1);
scanf("%d %d", &points[i][0], &points[i][1]);
}
check_parallel(n, points);
return 0;
}
नमूना आउटपुट
बिंदुओं की संख्या: 4 बिंदु 1 (x y): 2 1 बिंदु 2 (x y): 3 1 बिंदु 3 (x y): 4 1 बिंदु 4 (x y): 0 1 X-अक्ष के समानांतर
सामान्यीकरण: रेखा ढलान
void line_orientation(int n, int points[][2]) {
if (n < 2) { printf("अपर्याप्त बिंदु\n"); return; }
// ढलान की गणना: (y2-y1)/(x2-x1)
int dx = points[1][0] - points[0][0];
int dy = points[1][1] - points[0][1];
if (dx == 0 && dy == 0) {
printf("समान बिंदु\n");
} else if (dx == 0) {
printf("लंबवत रेखा (Y-अक्ष के समानांतर)\n");
} else if (dy == 0) {
printf("क्षैतिज रेखा (X-अक्ष के समानांतर)\n");
} else {
double slope = (double)dy / dx;
printf("ढलान: %.2f\n", slope);
if (slope > 0) printf("ऊपर की ओर बढ़ती\n");
else printf("नीचे की ओर बढ़ती\n");
}
}
ज्यामितीय व्याख्या
- क्षैतिज रेखा (y = c): ढलान = 0, X-अक्ष के समानांतर
- लंबवत रेखा (x = c): ढलान अपरिभाषित, Y-अक्ष के समानांतर
- तिरछी रेखा: शून्येतर परिमित ढलान