利用坐标差值与半径构成的三角形,两直角边平方和等于第三边平方(半径平方)。以此做判断条件。大于半径平方就是圆外。
但这题关键考的的是if不加大括号时的作用域。最后一个else只和上一个if匹配,和第一个if无关,但同时两者又不能同时成立。
所以[3]这里必须有一个else,这样下面的if...else都归属于这个else之下。
#include <stdio.h>
void main()
{
float x,y;
scanf("%f%f",&x,&y);//【1】
if((x-2)*(x-2)+(y-2)*(y-2)>1)//【2】
printf("A点在圆外");
else//【3】
if((x-2)*(x-2)+(y-2)*(y-2)==1)
printf("A点在圆上");
else
printf("A点在圆内。");
}
温馨提示:答案为网友推荐,仅供参考