【c语言】三角形外心坐标

简介:

新学期第一个算法大作业就好坑爹。。。

要计算三角形外接圆。。。做模板用吧


# include<stdio.h>
# include<math.h>

double X1,Y1,X2,Y2,X3,Y3,x4,y4,length1,length2,length3;
int a;

void myprintf(double x1,double y1,double x2,double y2,double x3,double y3)
{
	char ch;
	printf("输入第一个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	while(scanf("(%lf,%lf)",&X1,&Y1)!=2)
	{
		while((ch=getchar())!='\n')
		{
			continue;
		}
		printf("输入有误,请重新输入第一个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	}
	while((ch=getchar())!='\n')
	{
		continue;
	}
	printf("输入第二个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	while(scanf("(%lf,%lf)",&X2,&Y2)!=2)
	{
		while((ch=getchar())!='\n')
		{
			continue;
		}
		printf("输入有误,请重新输入第二个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	}
	while((ch=getchar())!='\n')
	{
		continue;
	}
	printf("输入第三个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	while(scanf("(%lf,%lf)",&X3,&Y3)!=2)
	{
		while((ch=getchar())!='\n')
		{
			continue;
		}
		printf("输入有误,请重新输入第三个点的坐标值,横纵坐标用逗号隔开(如(0,0)):");
	}
	while((ch=getchar())!='\n')
	{
		continue;
	}
}
void main()
{
	myprintf(X1,Y2,X2,Y2,X3,Y3);
	length1=sqrt(pow(X1-X2,2)+pow(Y1-Y2,2));
	length2=sqrt(pow(X1-X3,2)+pow(Y1-Y3,2));
	length3=sqrt(pow(X2-X3,2)+pow(Y2-Y3,2));
	while((length1>=length2+length3)||(length2>=length1+length3)||length3>=length1+length2)
	{
		printf("输入的三个点不能构成三角形,请重新输入\n");
		myprintf(X1,Y2,X2,Y2,X3,Y3);
		length1=sqrt(pow(X1-X2,2)+pow(Y1-Y2,2));
		length2=sqrt(pow(X1-X3,2)+pow(Y1-Y3,2));
		length3=sqrt(pow(X2-X3,2)+pow(Y2-Y3,2));
	}
	x4=(pow(X2,2)*Y1-pow(X3,2)*Y1-pow(X1,2)*Y2+pow(X3,2)*Y2-pow(Y1,2)*Y2+pow(Y2,2)*Y1+pow(X1,2)*Y3-pow(X2,2)*Y3+pow(Y1,2)*Y3-pow(Y2,2)*Y3-pow(Y3,2)*Y1+pow(Y3,2)*Y2)/(2*(X2*Y1-X3*Y1-X1*Y2+X3*Y2+X1*Y3-X2*Y3));
	y4=-(-pow(X1,2)*X2+pow(X2,2)*X1+pow(X1,2)*X3-pow(X2,2)*X3-pow(X3,2)*X1+pow(X3,2)*X2-pow(Y1,2)*X2+pow(Y1,2)*X3+pow(Y2,2)*X1-pow(Y2,2)*X3-pow(Y3,2)*X1+pow(X3,2)*X2)/(2*(X2*Y1-X3*Y1-X1*Y2+X3*Y2+X1*Y3-X2*Y3));
	printf("此三角形外心坐标为(%lf,%lf)\n",x4,y4);
}





相关文章
|
5月前
|
C语言
C语言---计算三角形的周长和面积--海伦公式
C语言---计算三角形的周长和面积--海伦公式
|
5月前
|
C语言
C语言---三角形判断
C语言---三角形判断
|
6月前
|
C语言
C语言三角形类型判断
C语言三角形类型判断
|
6月前
|
存储 C语言
C语言如何判定三角形
C语言如何判定三角形
|
6月前
|
存储 C语言
说出来你可能不信, 杨辉三角形用C语言实现其实很简单!
说出来你可能不信, 杨辉三角形用C语言实现其实很简单!
|
6月前
|
C语言
【C 语言经典100例】C 练习实例61 - 杨辉三角形
【C 语言经典100例】C 练习实例61 - 杨辉三角形
38 0
|
C语言
C语言:已知三角形三边长,计算面积 —— 海伦公式
C语言:已知三角形三边长,计算面积 —— 海伦公式
|
算法 搜索推荐 程序员
C语言第四练——利用海伦公式编程求三角形的面积
C语言第四练——利用海伦公式编程求三角形的面积
233 0
|
C语言
C语言实例:创建各类三角形图案(杨辉三角,弗洛伊德三角形....)
C语言实例:创建各类三角形图案(杨辉三角,弗洛伊德三角形....)
151 0
|
存储 算法 C语言
【C语言蓝桥杯每日一题】——数字三角形
数字三角形🙌 题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。
154 0
【C语言蓝桥杯每日一题】——数字三角形