⑴ c語言編程 已知三角形三邊a b c求面積,利用海倫公式實現
#include <stdio.h>
#include <math.h>
int main()
{
printf("請分別輸入三角形邊長,按回車:\n");
float a,b,c;
float s,area;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c && a+c>b && b+c>a) //判斷是否可以構成三角形。
{
s=(a+b+c)/2;//計算半周長
area=sqrt(s*(s-a)*(s-b)*(s-c));//套用海倫公式,計算面積
printf("這個三角形的面積為%lf\n", area);//輸出結果
}
else printf("無法構成三角形\n");//輸入不合法,提示。
return 0;
}
望採納。
⑵ c語言 關於海倫公式 求助
是剛學C吧?好象對變數的作用域、命名以及命令的使用還要再加強一下。
三個函數中都有錯誤:
一,看你的程序,似乎是想把變數s作為一個全局變數,在各個函數中使用,可該變數並沒有定義。(那個主函數中的S是大寫的,與此無關。)
二,變數名與函數名重合,如果s是全局變數的話,那麼又與函數s(float,float,float)的命名重復,編譯器無法確定同樣的一個名字到底是函數還是變數,不能通過編譯。同時,在函數area(float,float,float)中,裡面有一個求面積的變數area也沒有定義。
三,主函數中的語法邏輯錯誤。
程序的本意是先判斷三條邊是否符合構成三角形的條件,然後再計算面積。但:
1、這里其實應該用if語句,而不用循環;
2、即使是採用循環,從邏輯上也是錯的:照你的程序,只要符合條件(兩邊之和大於第三邊)就一直循環下去,除非不符合方退出,這個程序不能計算出正確的結果。
雖然下面是按盡量按程序的原樣改動,但一般而言不提倡使用全局變數,因為使用多了,程序的可移植性會大受影響。
綜上所述,程序和如下改動(在保證正確的情況下盡量不改變原程序):
#include<stdio.h>
#include<math.h>
float s;
void main()
{ float area(float a,float b,float c);
float a,b,c,S;
scanf("%f %f %f",&a,&b,&c);
if(a+b>c&&a+c>b);
S=area(a,b,c);}
}
float area(float a,float b,float c)
{
float ss(float a,float b,float c);
float area;
s=ss(a,b,c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f",area);
return area;
}
float ss(float a,float b,float c)
{
s=(a+b+c)*0.5;
return s;
}
⑶ c語言三角形面積 海倫公式
voidmain()
{
floatx,y,z,s,n,m;
scanf("%f%f%f",&x,&y,&z);
if((x+y<=z)||(x+z<=y)||(y+z<=x))//判斷是否能構成三角形條件
{
printf("wrong ");
}
else
{
n=(x+y+z)/2.0;//這里要用浮點數2.0
s=n*(n-x)*(n-y)*(n-z);
m=sqrt(s);
printf("%f ",m);
}
}
⑷ C語言編程,已知三角形的三邊長a,b,c,計算求三角形面積的公式為:
程序代碼如下:
#include <stdio.h>
#include <math.h>
int main()
{
printf("輸入三個邊長: ");
float a,b,c;
float s,area;
scanf("%f%f%f",&a,&b,&c);
s = (a+b+c)/2;
area = sqrt(s*(s-a)*(s-b)*(s-c));
if(a+b>c && b+c>a && a+c>b)
printf("面積是%.2f ",area);
else
printf("三條邊無法構成三角形");
return 0;
}
(4)與海倫公式對應的c語言表達式擴展閱讀:
三角形具有以下性質:
1、三角形任意兩邊之和大於第三邊,任意兩邊之差小於第三邊。
2、在平面上三角形的內角和等於180°(內角和定理)。
3、在平面上三角形的外角和等於360° (外角和定理)。
4、三角形的三條角平分線交於一點,三條高線的所在直線交於一點,三條中線交於一點。
5、三角形的任意一條中線將這個三角形分為兩個面積相等的三角形。
⑸ C語言海倫公式
#include&lt;math.h&gt;#include&lt;stdio.h&gt;main(){floata,b,c,p,s;printf(&quot;changkuangaoshi?&quot;);scanf(&quot;%f%f%f&quot;,&amp;a,&amp;b,&amp;c);&#47;&#47;注意p=(a+b+c)&#47;2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf(&quot;mianjishi:%f&quot;,s);}最後吐一下糟,這個英語水平,實在是,現在都有在線字典了啊
⑹ 用海倫公式求三角形的面積的程序代碼怎麼寫(用C語言)
#include
<stdio.h>
#include
<math.h>
#define
p
((a+b+c)/2)
//
這個值很重要
int
main(int
argc,
char
*argv[])
{
float
a,b,c;
double
area;
//
獲取三角形的三個邊數據
scanf("Pls
input
a,
b,
c:%f%f%f",
&a,
&b,
&c);
//
判斷輸入是否合法
if(a>=b+c
||
b>=a+c
||
c>=a+b)
{
printf("Args
error\n");
return
-1;
}
//
計算面積
area
=
sqrt((double)(p*(p-a)*(p-b)*(p-c)));
printf("Area
=
%f\n",
area);
return
0;
}
⑺ C語言中求三角形的「海倫公式」是什麼意思像下面公式:請大大們幫解析。
這個在初中七年級就學過了啊!你畫畫圖嘛,你是不是太懶了?
證明:海倫公式:若ΔABC的三邊長為a、b、c,則
SΔABC=√((a+b+c)×(-a+b+c)×(a-b+c)×(a+b-c))/4(這是海倫公式的變形,「負號「-」從a左則向右經過a、b、c」,負號從x軸負軸向正軸掃描一個周期!我覺得這么記更簡單,還設個什麼l=(a+b=c)/2啊,多此一舉!)
證明:設邊c上的高為 h,則有
√(a^2-h^2)+√(b^2-h^2)=c
√(a^2-h^2)=c-√(b^2-h^2)
兩邊平方,化簡得:
2c√(b^2-h^2)=b^2+c^2-a^2
兩邊平方,化簡得:
h=√(b^2-(b^2+c^2-a^2)^2/(4c^2))
SΔABC=ch/2
=c√(b^2-(b^2+c^2-a^2)^2/(4c^2))/2
仔細化簡一下,得:
SΔABC=√((a+b+c)×(-a+b+c)×(a-b+c)×(a+b-c))/4
用三角函數證明!
證明:
SΔABC=absinC/2
=ab√(1-(cosC)^2)/2————(1)
∵cosC=(a^2+b^2-c^2)/(2ab)
∴代入(1)式,(仔細)化簡得:
SΔABC=√((a+b+c)×(-a+b+c)×(a-b+c)×(a+b-c))/4
⑻ C語言編寫海倫公式
#include<stdio.h>
#include<math.h>
intmain()
{
doublea,b,c,s,area;
printf("Enterabc:");
//因為是double類型的數據,要用lf
while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF)
{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%lf",area);
}
return0;
}
運行結果:
⑼ C語言編程,三角形面積的海倫公式為:area=開根號[s(s-a)(s-b)(s-c],其中s=(a+b+c)/2, a、b、c是三角形的
#include<stdio.h>
#include <math.h>
void main()
{
float a,b,c;
int s,area;
printf("請輸入三角形三邊的值:\n");
scanf("%f %f %f",&a,&b,&c);
if(a+b>c&&a+c>b)
{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
}
printf("三角形的面積是:");
printf("%d\n",area);
printf("三角形的周長是:");
printf("%d\n",s*2);
}
}
輸入3 4 5
中間間隔為空格
⑽ 運用C語言函數和海倫公式求三角形面積急求
#include<stdio.h>
#include<math.h>
main()
{
float a,b,c,s,area=0;
printf("請輸入三角形三個邊,空格間隔,回車結束!\n");
scanf("%f%f%f",&a,&b,&c);
if(a+b<=c ||a+c<=b || b+c<=a )
{printf("輸入錯誤,三角形兩邊之和應大於第三邊,請重新輸入!\n");return 0;}
else
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形面積是:%.3f",area);//保留了三位小數
}