當前位置:首頁 » 編程語言 » 海倫公式程序設計c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

海倫公式程序設計c語言

發布時間: 2022-04-11 18:53:30

『壹』 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語言 關於海倫公式 求助

是剛學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語言編程 已知三角形三邊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語言編程問題,利用海倫公式求三角形面積

程序已改正,樓主自己對照下,我調試通過了
#include<stdio.h>
#include<math.h>
int
main()
{
double
a,b,c,p,s,max,min;
printf("請輸入a,b,c三個數:");
scanf("%lf%lf%lf",&a,&b,&c);
max=(((a>b)?a:b)>c?((a>b)?a:b):c);
min=(((a<b)?a:b)<c?((a<b)?a:b):c);
p=(1.0/2)*(a+b+c);//錯誤1
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("a,b,c三個數中最大的是:%lf\n",max);//錯誤2
printf("a,b,c三個數中最小的是%lf\n",min);//錯誤3
printf("三角形的面積為:%.3lf\n",s);
return
0;
}

『伍』 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語言程序設計,求代碼

提供兩種思路,這里只給思路不給代碼,因為網路知道現在似乎貼代碼格式會亂,而且自己寫代碼更容易進步。


第一種暴力的方法:遍歷所有格點,用勾股定理算出三條邊長度,用海倫公式算出面積。

勾股定理這個大家都會。海倫公式可以通過三邊長度算出三角形面積。

海倫公式大致內容:令 p = ( a + b + c ) / 2 ,則 S = sqrt [ p ( p - a ) ( p -b ) ( p - c ) ] 。


(之前題目看錯了。。重新寫一遍這個方法

暴力的方法在 9×9 的范圍內當然跑得快,但是如果題目加強,讓你在 10^7×10^7 的方格內找好點,你怎麼找?

第二種方法:根據面積相等底邊長度關系,可以求出高的比值,然後設出其中一條高的長度,就能得到另一條高的長度。然後寫出兩個直線方程聯立,可以得到一個新的方程這個方程的圖象上的整點就是好點。

聽起來有點繞,拿這道題做例子就好理解了。

設 △PAB 的高為 a (為了方便記作條件①),則 △PAC 的高為 2a (條件②)。

以方格左下角為原點建系,可以寫出滿足條件①的直線解析式 y = x + √2 a 。

同理滿足條件②的直線解析式為 y = 12 - x - 2√2 a 。(這里 a 的系數可正可負,篇幅原因只算一種,另一種後面代入一遍就好了)

聯立可得 P 坐標為 ( 6 - 3√2/2 a, 6 - √2/2 a )。

根據坐標式子和題目性質可得 P 圖象必定過 A( 6, 6 ),並且圖象是一條直線。

設 P : y = k ( x - 6 ) + 6 ,代入坐標解得 k = 1/3 。

所以 P 在直線 y = 1/3 x + 4 上。

同理,P 也在直線 y = 3 x - 12 上。

然後把所有橫坐標代入就好啦,復雜度直接少了一階。(事實上還可以繼續優化,不過這樣已經很優了)

『柒』 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語言)

#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++ 編程 關於用海倫公式計算三角形面積的一個程序

程序代碼如下:

#包括< stdio, h >

h#包括< math.h >

Intmain()

Printf(「請輸入三角形分別為邊長和按下回車:\n」);

浮動a,b,c;

浮動,區域;

掃描文件(「% f % f % f」,& a & b, & c);

如果(a+b>c && a+c>b && b+c>a) //判斷三角形是否可以形成。

S=(a+b+c)/2;//計算半個圓周

面積=SQRT(s*(s-a)*(s-b)*(s-c));//應用海倫的公式來計算面積

Printf(「這個三角形的面積是%lf\n」,面積);//輸出結果

否則printf("不能形成三角\n");//非法輸入,提示。

返回0;

(9)海倫公式程序設計c語言擴展閱讀:

海倫的公式

在公式中,a,b,c是三角形三條邊的長度,p是三角形的半圓,S是三角形的面積。

據傳說,這個公式最早是由古希臘數學家阿基米德得到的,因為這個公式最早出現在海倫的著作《大地測量學》中,所以被稱為海倫公式。

1247年,宋代數學家秦九超獨立提出了「三重斜四邊形」。雖然它在形式上與海倫的公式不同,但它完全等價於海倫的公式。它填補了中國數學史上的一個空白,從中我們可以看出古代中國的數學水平很高。

海倫公式提出了三角形和多邊形面積計算提供了一種新的方法和思路,知道的三邊長三角公式的情況下高使用海倫和我不知道可以更快更容易找到,比如在土地面積的測量,不高的三角形,只需要測量兩個點之間的距離,可以很容易地推導出解決方案。

『拾』 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 中間間隔為空格