當前位置:首頁 » 編程語言 » 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分」速度啊~~~

你為什麼不用倆個方位來製作呢?
那樣還簡單點啊!利用視覺差.
那樣只要畫倆幅畫就可以達到那樣的效果了啊!
照你這樣寫好麻煩的呢!
其實想好怎麼畫就可以了,
我覺得只要畫圓就可以了,只不過有倆個是半圓,其他的都是些圓的作和.