写一个圆的结构体,结构体成员有圆心的坐标:x,y以及半径r。定义两个结构体变量,给二者成员赋值,写一函数,功能:判断两个圆是相交相离还是相切?并且利用图形库将这两个圆的图形画出。
#include<stdio.h>
#include <graphics.h> // 引用图形库头文件,需下载easy_x
#include <conio.h>
#include<math.h>
struct cir
{
int x,y,r;
};
void f(struct cir a,struct cir b)
{
if(sqrt(((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))*1.0)==a.r+b.r)
printf("相切");
else if(sqrt(((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))*1.0)<a.r+b.r)
printf("相交");
else if(sqrt(((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))*1.0)>a.r+b.r)
printf("相离");
circle(a.x, a.y, a.r);
circle(b.x, b.y, b.r);
}
int main()
{
struct cir c1,c2;
scanf("%d%d%d",&c1.x,&c1.y,&c1.r);
scanf("%d%d%d",&c2.x,&c2.y,&c2.r);
// 画圆,圆心(200, 200),半径 100
initgraph(640, 480); // 创建绘图窗口,大小为 640x480 像素该函数应该放scanf后面,emm我是要这样,不然我不会输入值
f(c1,c2);
_getch(); // 按任意键继续
closegraph(); // 关闭绘图窗口
}