用C语言写设有一个圆形,半径为20mm,圆心坐标为(3,2),任意输入一点(x, y),编程序判定该点是位于圆周上、圆内还是圆外?
时间: 2024-10-09 11:10:02 浏览: 34
在C语言中,我们可以使用勾股定理和判断公式来确定一个给定点是否在圆周上、圆内还是圆外。首先,我们需要计算两点之间的距离(即输入点到圆心的距离),然后将这个距离与圆的半径进行比较。以下是基本步骤:
1. 定义常量和变量:圆的半径 r 和圆心的坐标 (x0, y0)。
2. 输入用户点的坐标 (x, y)。
3. 计算距离 d = sqrt((x - x0)^2 + (y - y0)^2)。
4. 判断条件:
- 如果 d == r,那么点在圆周上。
- 如果 d < r,那么点在圆内。
- 否则,如果 d > r,那么点在圆外。
以下是一个简单的C语言函数示例,用于实现这个功能:
```c
#include <stdio.h>
#include <math.h>
// 圆的半径和圆心坐标
const double radius = 20.0;
const double x0 = 3.0;
const double y0 = 2.0;
// 函数判断点的位置
int point_in_circle(double x, double y) {
double distance = hypot(x - x0, y - y0); // 使用hypot函数计算距离
if (distance == radius)
return 0; // 点在圆周上
else if (distance < radius)
return 1; // 点在圆内
else
return 2; // 点在圆外
}
int main() {
double x, y;
printf("请输入点的坐标 (x, y): ");
scanf("%lf %lf", &x, &y);
int position = point_in_circle(x, y);
switch (position) {
case 0:
printf("点在圆周上.\n");
break;
case 1:
printf("点在圆内.\n");
break;
case 2:
printf("点在圆外.\n");
break;
}
return 0;
}
```
阅读全文