当前位置:首页 » 编程语言 » c语言外接圆
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言外接圆

发布时间: 2022-05-05 20:12:14

1. c 语言判断一个点是否在三角形的外接圆内

是不是做题啊,现在哪有用float的,当不存在好了,浮点运算至少double,特殊情况下要开long double float精度肯定是不够的

2. 用c语言求三角形外接圆面积

只是从计算公式的角度来讲的话,基本上没有错误!
cos = (a*a-b*b-c*c)/(2*b*c)
但因为下面使用的是 cos 的平方,cos 值的正负对后面的公式影响不大。

因此,不知道楼主所说的错误是什么?不会是因为数据有错误的?
比如说应该先判断:
a+b>c,b+c>a 和 a+c>b

也有可能是 cos 和 sin 这两个名字是不是 C 语言中保留的函数名称,存在着冲突?
要是楼主能够提供出错误的提示就好了,省得大家这么猜了!

3. C语言编程题,新手求指教这题代码该怎么写啊 老师没讲过晕

1)先找出X坐标最小的点为起始点
2)从起始点开始构造最小的外包凸多边形(顺时针构造则选择最左方的边,逆时针构造则选最右方的边)
3)在凸多边形中每个点和其不相邻的边构造的三角形中,找出周长最大的那一个
4)求出最大周长三角形的几何中心
5)该中心到最大三角的任意一顶点的长度就是所求半径

4. 编程序,输入正方形外接圆面积S。正方形边长a由键盘输入

正方形内接圆面积求法:π×(边长/2)^2 正方形外接圆面积求法:π×(边长×√2 / 2) ^ 2 C语言代码如下: #include #define pi 3.14int main(){ double a; scanf("%lf", &a); printf("正方形面积:%lf\n", a * a); printf("内接圆面积:%lf\n", pi * a * a / 4); printf("外接圆面积:%lf\n", pi * a * a / 2); return 0;}

5. c语言如何将任给出的平面上n个点的坐标,得到圆的最小半径

#include <stdio.h>
#include <math.h>
// 输入最多的点数目
#define MAX_POINTS_AMOUNT 100

struct Point
{
double x,y;
};
// 求点 p1, p2 的距离
double distance(struct Point p1, struct Point p2)
{
return sqrt((p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y));
}
// 求 a, b, c 中的最大值
double max(double a, double b, double c)
{
return a>=b && a>=c
? a
: b>=a && b>=c
? b
: c;
}

// 判断长度为 a, b, c 的 3条线段能否组成三角形
// 判断依据为:至少有一条边的长度,大于另两条边的长度差(绝对值),小于另两条边的长度和
int canMakeTriangle(double a, double b, double c)
{
return a>fabs(b-c) && a<(b+c) ||
b>fabs(a-c) && b<(a+c) ||
c>fabs(a-b) && c<(a+b);
}

// 判断长度为 a, b, c 的 3条线段能否组成锐角三角形
// 判断依据:根据余弦定理,求出 3 个角的余弦值
int canMakeAcuteTriangle(double a, double b, double c)
{
unsigned int i;
double cos_a, cos_b ,cos_c;
if(canMakeTriangle(a, b, c))
{
cos_a = (b*b + c*c - a*a)/(2*b*c);
cos_b = (a*a + c*c - b*b)/(2*a*c);
cos_c = (a*a + b*b - c*c)/(2*a*b);
return cos_a>0 && cos_b>0 && cos_c>0;
}
return 0;
}

/* 求覆盖 n 个点 points 的最小圆的半径
算法:
只要分别求出所有3点组合覆盖的最小圆,取其中半径最大者即为所求。
确定覆盖3点的最小圆的步骤可以如下:
(1) 若3点组成直角或钝角三角形,或3点共线,此时,最小圆的半径为三边中最长边的一半。
(2) 否则,3点组成锐角三角形,最小圆为3点的外接圆。
(3) 外接圆半径计算方法:
(a) 若3点构成一个三角形(即3点不共线),
并设3点的坐标为 (x1,y1),(x2,y2),(x3,y3),求出两点(x1,y1)和(x2,y2)之间的距离
L1=sqrt((x1-x2)^2+(y1-y2)^2), 同样求出(x1,y1)和(x3,y3)之间的距离L2,
以及(x2,y2)和(x3,y3)之间的距离L3。
(b) 求出三角形半周长L=(L1+L2+L3)/2以及面积S=sqrt(L*(L-L1)*(L-L2)*(L-L3))。
(c) 根据公式4SR=L1*L2*L3,求外接圆半径R=L1*L2*L3/(4*S)。
参数:
n : 点数目
points : n 个点的坐标
start : 递归参数。表示当前从在 n 个点的第 start 个开始选取。初始值为 0。
selectPointsAmount : 递归参数。表示当前已经选好了的点数。最多为 3 个。初始值为 0。
selectPoints : 递归参数。表示当前已经选好了的点的坐标数组。初始值为 NULL。
返回:
覆盖 n 个点 points 的最小圆的半径。

*/
double minCircleRadius(unsigned int n, struct Point points[],
unsigned int start, unsigned int selectPointsAmount, struct Point selectPoints[])
{
if(n <= 1)
return 0.0;
if(n == 2)
return distance(points[0], points[1])/2.0;
else
{
if(selectPointsAmount == 3)
{// 已经选好了 3 个点,求能覆盖它们的最小圆的半径

double L1 = distance(selectPoints[0], selectPoints[1]);
double L2 = distance(selectPoints[0], selectPoints[2]);
double L3 = distance(selectPoints[1], selectPoints[2]);
double L = (L1 + L2 + L3)/2.0;
double S = sqrt(L*(L-L1)*(L-L2)*(L-L3));
if(canMakeAcuteTriangle(L1, L2, L3))
{// 能组成锐角三角形
return L1*L2*L3/(4.0*S);
}
else
{// 其他情况:三点共线,组成直角三角形,或锐角三角形
return max(L1, L2,L3)/2.0;
}
}
else
{// 任选 3 个点
double r, minR = 0.0;
unsigned int i;

struct Point temp[3];
if(selectPoints == NULL)
selectPoints = temp;

for(i=start;(n-i)>=(3-selectPointsAmount);i++)
{
selectPoints[selectPointsAmount] = points[i];
r = minCircleRadius(n, points, i+1, selectPointsAmount+1, selectPoints);
if(minR < r)
minR = r;
}
return minR;
}
}
}
int main(int argc, char *argv[])
{
struct Point points[MAX_POINTS_AMOUNT];
unsigned int i,n;
while(scanf("%d",&n)!=EOF)
{
for(i=0; i<n; i++)
scanf("%lf,%lf",&points[i].x, &points[i].y);
printf("%.4lf\n",minCircleRadius(n, points, 0, 0, NULL));
}
return 0;
}
/*
4
4.2,5.6
78.3,3.8
35.4,15.9
29.88,42.56
*/

6. 编程输入正方形的边长,编程求其面积,内接圆面积,外接圆面积

正方形内接圆面积求法:π×(边长/2)^2

正方形外接圆面积求法:π×(边长×√2 / 2) ^ 2

C语言代码如下:

#include<stdio.h>

#definepi3.14

intmain()
{
doublea;

scanf("%lf",&a);
printf("正方形面积:%lf ",a*a);
printf("内接圆面积:%lf ",pi*a*a/4);
printf("外接圆面积:%lf ",pi*a*a/2);

return0;
}

7. 用C语言编写求三角形外接圆周长、

这是数学题吧……
如果输入是三角形的三边边长,
那么先由余弦定理计算得角,即cosA=(b^2+c^2-a^2)/2bc
进而得到(sinA)^2=1-(cosA)^2
再由正弦定理得圆直径为2R=a/sinA
最后求周长为pi*2R

8. c语言编程 帮帮忙,这几个怎么编

这个好多啊。。。。我慢慢来回答。。。。
太晚了。主要的给你,你自己写一下就行了。。。
1.
scanf("%2d",&a);scanf("%2d",&b);
printf("%3d*%3d=%5d\n",a,b,a*b);
2.
正五边形的每个内角是(5-2)×180°/5=108°
连接圆心和一条边的两端,得到一个等腰三角形,其底角为108°/2=54°,顶角为180°-2×54°=72°
设正五边形的边长为a,外接圆的半径为r,则r=a/(2cos54°)=a/(2sin36°)
下面给出sin36°的求法:
由于sin36°=sin(180°=36°)=sin144°=2sin72°cos72°
=4sin36°cos36°[2(cos36°)^2-1]
由此得到 8(cos36°)^3-4cos36°-1=0
(2cos36°+1)[4(cos36°)^2-2cos36°-1]=0
由4(cos36°)^2-2cos36°-1=0解出
cos36°=(1+√5)/4,
sin36°=√[1-(cos36°)^2]=√(10-2√5)/4.
所以r=a/(2sin36°)=a/[2√(10-2√5)/4]=2a/√(10-2√5)
=(√(50+10√5)a/10

3.
(x-x1)/(x2-x1)=(y-y1)/(y2-y1)=(z-z1)/(z2-z1)
4.
#include<stdio.h>
main()
{int a,b,i,j,k.
printf("鸡兔共有几只?")
scanf("%d",&a);
printf("共有多少只腿?");
scanf("%d",&b);
for(i=1;i<=a;i++)
{j=i;k=a-i;
j*=2;
k*=4;
if(j+k==b)
{printf("鸡有%d只,兔有%d只",j,k);
i=0;
break;
}
}
if(i!=0)printf("输入错误");
}

9. 初学者的C语言结构体类型问题!

首先是结构体
struct point
{
int x;
int y;

};
求三个点的外接圆
首先分析 是外接圆 那么就是垂直平分线的交点 求出交点 之后可以再求交点到任意一点的距离 就是半径 额 (本人初中生 不知道怎么算 但是告诉我怎么算可以帮你写程序)

10. C语言 求多边形 外接圆的圆心,半径。 已知多边形各点的坐标。 “代码好”的同学再追加“30分”速度啊~~~

你为什么不用俩个方位来制作呢?
那样还简单点啊!利用视觉差.
那样只要画俩幅画就可以达到那样的效果了啊!
照你这样写好麻烦的呢!
其实想好怎么画就可以了,
我觉得只要画圆就可以了,只不过有俩个是半圆,其他的都是些圆的作和.