题目
本题是《谭浩强c程序设计》4.12题。
题目:
有4个圆塔, 圆心分别为(2, 2)、(-2, 2)、(-2, -2)、(2, -2), 圆半径为1, 见图。这4个塔的高度为10m,
塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
先输入一个坐标,对这个坐标的行和列取绝对值,然后代入公式计算点到圆心的距离,当距离大于半径时,高度为0,当距离小于半径时,高度为10m。
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
#include<math.h>
2.主函数部分
代码如下(示例):
int main()
{
//在圆内:高度10,不在圆内:高度0;
int r = 1;
printf("请输入任意一点的坐标:");
int a, b;
int x, y;
float c;
scanf("%d %d", &a, &b);
x = fabs(a);
y = fabs(b);//先将a和b的坐标取绝对值
c = sqrt((x - 2) * (x - 2) + (y - 2) * (y - x));//sqrt是求平方根公式,c是求点到圆心的距离为多少,公式为根号下x1-x2的平方+y1-y2的平方
if (c > r)
printf("0");//当求出的点到圆心的距离大于半径,说明不在圆塔上,高度为0
else
printf("10");//当求出的点到圆心的距离小于等于半径,说明在圆塔上,高度为10
return 0;
}
三、执行结果
输入:
请输入任意一点的坐标:2 0
输出:
0