定義一個圓的結構體,給兩個圓的圓心和半徑分別賦值,判斷兩個圓的關系(相交、相切、相離、重合)。
#import <Foundation/Foundation.h>
typedef struct
{
int x;
int y;
float r;
} Circle;
void compareCircle(Circle a,Circle b)
{
float rr = 0;
if (a.x>=b.x)//比較點坐標大小,用大數減掉小數;
{
int xab = a.x - b.x;
if (a.y>=b.y)
{
int yab = a.y - b.y;
rr = fabs(sqrt(xab * xab + yab * yab));
}else
{
int yab = b.y - a.y;
rr = fabs(sqrt(xab * xab + yab * yab));
}
}else
{
int xab = b.x - a.x;
if (a.y>=b.y)
{
int yab = a.y - b.y;
rr = fabs(sqrt(xab * xab + yab * yab));
}
else
{
int yab = b.y - a.y;
rr = fabs(sqrt(xab * xab + yab * yab));
}
}
if (a.x == b.x && a.y == b.y)
{
printf("兩個圓重合\n");
}else if (rr > a.r + b.r)
{
printf("兩個圓相離\n");
}else if ((rr ==a.r-b.r)||(rr==b.r-a.r)||(rr=a.r+b.r))
{
printf("兩個圓相切\n");
}else
{
printf("兩個圓相交\n");
}
}
int main()
{
Circle c1,c2;
printf("輸入要比較的圓1的坐標及半徑:\n");
scanf("%d%d%f",&c1.x,&c1.y,&c1.r);
printf("輸入要比較的圓2的坐標及半徑:\n");
scanf("%d%d%f",&c2.x,&c2.y,&c2.r);
compareCircle(c1, c2);
return 0;
}
用結構體求兩個圓的關系
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。