作业帮 > 综合 > 作业

C 语言 三角形面积 求找出错误所在.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/15 00:26:38
C 语言 三角形面积 求找出错误所在.
#include
#include
void main()
{
int a,b,c;
double s=(a+b+c)/2;
printf ("请输入三条边的长度:\n");
scanf ("%d%d%d",&a,&b,&c);
if(a+b>=c) printf("%lf",s=abs(s*(s-a)*(s-b)*(s-c)));
else printf ("输入数据错误:两边之和必须大于第三边!\n");
if(a+c>=b) printf("%lf",s=abs(s*(s-a)*(s-b)*(s-c)));
else printf ("输入数据错误:两边之和必须大于第三边!\n");
if(b+c>=a) printf("%lf",s=abs(s*(s-a)*(s-b)*(s-c)));
else printf ("输入数据错误:两边之和必须大于第三边!\n");
}
请指教错误在哪?4楼说的多 scanf ("%d%d%d",&a,&b,&c); 改了,但是又有新问题出现了.
我要是出现一个答案,为何?这样
请输入三条边的长度:
2 3 1
0.000000
0.000000
0.000000
ress any key to continu
程序有两个问题
1.这是最重大的问题,a b c还没有通过 scanf 函数输入赋值就参加运算了;double s= (a+b+c)/2,这时候 abc 都是 0,所以 s 是零,后面的计算就都是零了
2.后面都 if 逻辑判断太冗余了,你写的是三个 if else 语句依次判断,正常情况,if 条件都会成立的,所以会输出 3 次,你直接把判断用 && 连接起来写到一个 if 后面就好了呗