麻烦帮忙看看到底哪里错了....我实在是无力了....
c语言吧
全部回复
仅看楼主
level 9
weifunv 楼主

描述
给出三角形的边长,求三角形的面积。
要求:输入三个整数,看其是否符合构成三角形的条件,若符合。输出三角形的面积,否则,输出“it is not a triangle”
提示:面积这个变量用什么类型的?
输入数据
三个整数
输出数据
area=表示面积的实数,取小数点后两位
输入示例
3 4 5
输出示例
area=6.00
输入示例
1 4 5
输出示例
it is not a triangle
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c,s;
float area;
scanf("%d%d%d",&a,&b,&c);
if(a+b>c,a+c>b,b+c>a)
{ s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%.2f",area);
}
else printf("it is not a triangle");
return 0;
}
2012年03月01日 15点03分 1
level 12
if(a+b>c,a+c>b,b+c>a) ============还真没见过这东西
2012年03月01日 16点03分 2
level 7
二楼对的吧,把if后边括号里的逗号改为逻辑运算符&& 试试
2012年03月01日 16点03分 3
level 9
同三楼。你是要表达a+c>b且……吧,那的用&&
2012年03月01日 16点03分 4
level 5
s=(a+b+c)/2.0; //////把s声明为f吧-----------------[卷被]
2012年03月01日 16点03分 5
level 7
不声明为f行不?s好像会被自动转换为double型……我也不清楚对不?
2012年03月01日 16点03分 6
level 5
高级向低级需手动强制类型转换------------[卷被]
2012年03月01日 16点03分 7
level 7
int转换为double 不是低级转换为高级吗?
2012年03月01日 16点03分 8
level 5
s=(a+b+c)/2.0; //s是int------2.0是double----------so-------[卷被]
2012年03月01日 16点03分 9
level 7
我还是不明白……(a+b+c)是int,2.0是float ,int和float运算,结果不是转换为double型吗……
2012年03月01日 16点03分 10
1