我在这个程序中没有得到正确的输出,我必须计算输入的点是在圆内还是在圆外,或者在给定圆心和圆半径的圆的边界上输入的点。它有时给出正确的答案,而有时则不给予。例如,如果我输入(0,0)作为中心并将半径= 10并检查点(10,0),则表示该点位于圆外。 Dunno为什么会发生这种情况,因为在其他情况下检查它给出了正确的答案。这是程序的源代码 -
#include<stdio.h>
main()
{
float x1,y1,x2,y2,r,z;
printf("Please Enter The X And Y Coordinates Of The Centre Of The Circle = ");
scanf("%f%f",&x1,&y1);
printf("\nPlease Enter The Radius Of The Circle = ");
scanf("%f",&r);
printf("\nPlease Enter The Coordinates Of The Point You Want To Check");
scanf("%f%f",&x2,&y2);
z=x1*x1+x2*x2-2*x1*x2+y1*y1+y2*y2-2*y1*y2;
if(z*z==r*r)
printf("\nThe Point Entered Lies On The Boundary Of The Circle Described");
else if(z*z>r*r)
printf("\nThe Point Entered Is Outside The Circle Described");
else
printf("\nThe Point Entered Lies Inside The Circle");
}
答案 0 :(得分:2)
更改条件
if(z*z==r*r)
到
if(z==r*r)
和
else if(z*z>r*r)
到
else if(z>r*r)
因为z
已经是你计算的两点之间距离的平方。