C语言设计程序:从键盘输入三角形的三边长为a,b,c,用海伦公式计算并输出三角形的面积。

#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c;
float s, area;
printf("Input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
if (a+b>c && b+c>a && a+c>b)
{
s = 1/2 * (a + b + c);
area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("area=%.2f\n", area);
}
else
{
printf("It is not a triangle\n");
}
return 0;
}

上述代码中 s = 1/2 * (a + b + c)错误,应该改为s=(a+b+c)/2,但是这两句代码难道不是等价的吗,为什么会不一样?大神求解

两者计算是不同的。

s=1/2*(a+b+c)

按C语言的运算规则,先算括号,a+b+c,结果为float型

然后由于/和*同级,因此从左到右计算。先计算1/2

1、2都是整型,整型计算,结果仍为整型,1/2=0,因此,不管后面a+b+c的值为何,s的值都是0

而对于s=(a+b+c)/2,先算a+b+c,结果为float型,float型和整型2计算,结果为float型。

因此s=1/2*(a+b+c)是错误的,s=(a+b+c)/2是正确的。

    C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-05-09
两者计算是不同的。

s=1/2*(a+b+c)
按C语言的运算规则,先算括号,a+b+c,结果为float型
然后由于/和*同级,因此从左到右计算。先计算1/2
1、2都是整型,整型计算,结果仍为整型,1/2=0,因此,不管后面a+b+c的值为何,s的值都是0
而对于s=(a+b+c)/2,先算a+b+c,结果为float型,float型和整型2计算,结果为float型。
因此s=1/2*(a+b+c)是错误的,s=(a+b+c)/2是正确的。
第2个回答  2019-10-29

讲解三角形,海伦公式最简单的证明

第3个回答  2015-04-04
1/2==0

由于变量abc都是float型,故使用s=(a+b+c)/2没有上述问题,或者你干脆写成s = 1.0/2 * (a + b + c)也可以本回答被提问者采纳

C语言设计程序:从键盘输入三角形的三边长为a,b,c,用海伦公式计算并输出...
s=1\/2*(a+b+c)按C语言的运算规则,先算括号,a+b+c,结果为float型 然后由于\/和*同级,因此从左到右计算。先计算1\/2 1、2都是整型,整型计算,结果仍为整型,1\/2=0,因此,不管后面a+b+c的值为何,s的值都是0 而对于s=(a+b+c)\/2,先算a+b+c,结果为float型,float型和整型2...

C语言编程:输入三角形的三条边(假设能构成三角形),输出三角形的面积...
{if(abs(a-b)<c&&abs(a-c)<b&&abs(b-c)<a)<br\/> {if(a==b||a==c||b==c)<br\/> {printf("这是一个等腰三角形!\\n");<br\/> printf("这个三角形面积:%f\\n",area);} else {printf("不是等腰三角形!\\n");<br\/> printf("这个三角形面积%f\\n",area);}} ...

在c语言中输入三角形的三边长啊a,b,c,求三角形的面积?
假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:S=√[p(p-a)(p-b)(p-c)]而公式里的p为半周长:p=(a+b+c)\/2 include<stdio.h> include<math.h> void main(){ float a,b,c,s,area;printf("依次输入a,b,c(空格识别一个数):");scanf("%f...

c语言求三角形面积
从键盘输入三角形的三边长a,b,c(整数),按下面公式计算并输出三角形的面积。其中,要求:输入的a,b,c的值必须满足三角形成立的条件,即在一个三角形中,任意两边之和大于第三边。可以先判断是否可以构成三角形,即任意两边之和大于第三边,可以构成三角形情况下再计算,这样可以增加严谨性。C语言是...

C语言编程,已知三角形的三边长a,b,c,计算求三角形面积的公式为:
int main(){ printf("输入三个边长:\\n");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\\n",area);else printf("三条边无法构成三角形");return...

三条边的长度分别为a, b, c,怎样算三角形的面积。
海伦公式:S=√[p(p-a)(p-b)(p-c)]p=(a+b+c)\/2代入即可。C语言:输入三角形三条边的边长,并输出面积:1、首先打开我们的DEV C++软件,点击“新建源代码”。2、在编辑页面输入以下代码:include<stdio.h> int main(){ folat a,b,c,s,p ;printf("请输入三角形的三边:");scanf(...

怎么用C语言输入三角形的三条边长,计算并输出三角形的面积
include<stdio.h> int main(){ folat a,b,c,s,p ;printf("请输入三角形的三边:");scanf("%f %f %f",&a,&b,&c);p=(a+b+c)\/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("三角形的面积为:%.1f",s);return 0;} ...

...编写程序输入三角形的3条边长,计算并输出三角形的面积。
一、程序分析 三角形面积海伦公式:√[ p ( p - a ) ( p - b ) ( p - c ) ] 。其中 p = (a + b + c) \/ 2 。a、b、c分别是三角形的三边长。二、根据三角形面积计算公式用if语句编写程序如下:include "stdio.h"include "math.h"int main(void){ float a = 0, b = 0...

C语言 输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积和周长...
一、算法分析:1、 输入三条边,a,b,c;2、 判断是否可以构成三角形。 可以利用三角形两边之和必然大于第三边的定理进行判断;3、 对于可以构成三角形的,三边相加求周长,并利用海伦公式求面积;海伦公式为 式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。4、 输出周长和面积。...

输入三角形的3各边长a,b和c,应用下面的海伦公式计算三角形的面积area...
main(){ float a[3],b[3],c[3],area,s;int i;printf("输入三角形的三边长度a,b,c:");for( i=0;i<3;++i){ scanf("%f",&a[i]);} a[3]=a[1];for( i=0;i<3;++i){ b[i]=abs(a[i]-a[i+1]);c[i]=a[i]+a[i+1];} if( b[1]<a[0]&&a[0]<c[1...

相似回答