当前位置:首页 » 编程语言 » 海伦公式程序设计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 中间间隔为空格