题目:
在坐标系中,四个半径为1的圆,圆心分别为(2,2) (2,-2) (-2,2) (-2,-2)
要求输入一个坐标,输入坐标如果在任意一个圆内,则输出“内容1”,反之输出“内容2“。
下面是我写的,但是输出结果只会是”内容1“,即在圆内的情况,怎么解决呀,求解答qwq
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
int main()
{
int x, y;
int s;
scanf("(%d,%d)", &x, &y);
int a,b,c,d;
a = (x - 2) * (x - 2) + (y - 2) * (y - 2);
b = (x + 2) * (x + 2) + (y - 2) * (y - 2);
c = (x - 2) * (x - 2) + (y + 2) * (y + 2);
d = (x + 2) * (x + 2) + (y + 2) * (y + 2);
if (a <= 1)
{
printf("塔的高度为10m");
}
else if (b <= 1)
{
printf("塔的高度为10m");
}
else if (c <= 1)
{
printf("塔的高度为10m");
}
else if (d <= 1)
{
printf("塔的高度为10m");
}
else
{
printf("塔的高度为0");
}
return 0;
}
半径为1,要在圆内,那距离必然是小于1的值,所以a,b,c,d都必须定义为浮点型,不能为整形啊
而且坐标也最好是浮点数,否则只能整数的话,你只有输入圆心坐标才可能在圆内,其它任何整形坐标都在圆外
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main()
{
double x, y;
int s;
scanf("(%lf,%lf)", &x, &y);
double a,b,c,d;
a = (x - 2) * (x - 2) + (y - 2) * (y - 2);
b = (x + 2) * (x + 2) + (y - 2) * (y - 2);
c = (x - 2) * (x - 2) + (y + 2) * (y + 2);
d = (x + 2) * (x + 2) + (y + 2) * (y + 2);
if (a <= 1)
{
printf("塔的高度为10m");
}
else if (b <= 1)
{
printf("塔的高度为10m");
}
else if (c <= 1)
{
printf("塔的高度为10m");
}
else if (d <= 1)
{
printf("塔的高度为10m");
}
else
{
printf("塔的高度为0");
}
return 0;
}
还有一个问题,两个数平方了,开方呢
输入应该要加括号
输入2 2答案是0
输入(2,2)答案是10m