c语言判断该点是在圆内还是圆外 有四个圆,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1。输入任一点的坐标,判断该点是在圆内还是圆外。 输入示例 请输入任意一点的坐标<x,y>:4,5 输出示例 该点在圆外。
时间: 2024-12-02 17:19:54 浏览: 16
在C语言中,判断一个点是否在给定的圆内或圆外,可以使用距离公式来计算点到圆心的距离,然后比较这个距离与圆的半径。如果距离小于等于半径,则点在圆内;如果大于半径,则点在圆外。
以下是步骤:
1. 定义圆心的坐标和半径,这里已经给出,分别是:
- 圆心1 (2,2), 半径1 = 1
- 圆心2 (-2,2), 半径2 = 1
- 圆心3 (-2,-2), 半径3 = 1
- 圆心4 (2,-2), 半径4 = 1
2. 接收用户输入的点的坐标(x, y)。
3. 对于每个圆心,计算点到该圆心的距离 d = sqrt((x - 圆心x)^2 + (y - 圆心y)^2)。
4. 判断距离d与圆的半径的关系:
- 如果 d <= 圆的半径,说明点在该圆内;
- 如果 d > 圆的半径,说明点在该圆外。
下面是一个简单的函数实现这个功能:
```c
#include <stdio.h>
#include <math.h>
// 计算两点之间的欧几里得距离
double distance(int x1, int y1, int x2, int y2) {
return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
}
int main() {
int x, y;
printf("请输入任意一点的坐标<x,y>:");
scanf("%d,%d", &x, &y);
// 检查四个圆
for (int i = 0; i < 4; i++) {
int cx = (i % 2 == 0) ? 2 : -2;
int cy = (i / 2 == 0) ? 2 : -2;
double radius = 1;
double d = distance(x, y, cx, cy);
if (d <= radius) {
printf("该点在第%d个圆内。\n", i+1);
break;
}
}
return 0;
}
```
阅读全文