注册 登录
编程论坛 C++教室

w=sqrt(s(s-a)(s-b)(s-c));请问哪错了

xfxfxf 发布于 2008-09-27 22:38, 2237 次点击
#include <iostream>
#include <cmath>
using namespace std;
float main()
{int a,b,c;
 float s,w;
 cin>>a>>b>>c;
 if(a+b>c&&a+c>b&&b+c>a)
     s=(a+b+c)/2;
 c=a+b+c;
 w=sqrt(s(s-a)(s-b)(s-c));
 return 0;
}


 w=sqrt(s(s-a)(s-b)(s-c));
运行显示这段错误,请问哪里错了
10 回复
#2
blueboy820062008-09-27 22:42
乘法啊...
写 *
#3
xfxfxf2008-09-27 23:08
程序对了,可为什么没答案???
#4
xfxfxf2008-09-27 23:14
没输出  晕  惭愧
#5
xfxfxf2008-09-27 23:18
输出语句是  
 cout<<w<<endl<<c<<endl;
为什么面积是-1.#IND
#6
守鹤2008-09-28 00:18
回复 1# xfxfxf 的帖子
l两处错误

1.c=a+b+c; 此句用来做什么:同时 S-C 为负数; 一个数的平方会是负数吗

2. w=sqrt(s*(s-a)*(s-b)*(s-c));
#7
rivulettornado2008-09-28 07:00
回复 1# xfxfxf 的帖子
如果if(a+b>c&&a+c>b&&b+c>a)的条件不满足,那么s就没有赋值,那么就不可能得到正确的结果。
#8
xfxfxf2008-09-28 08:17
c=a+b+c; 这是周长
s=(a+b+c)/2  s-c不是>0吗?
比如输入 3  4  5 ,满足条件就是显示-1.#IND
#9
ml2325282008-09-28 09:18
s=(a+b+c)/2;
a b c 是int型 s也一定是int型
应该改为s=(a+b+c)/2.0;
#10
ml2325282008-09-28 09:20
s=(a+b+c)/2
c=a+b+c
s-c 一定是负数
#11
xfxfxf2008-09-28 12:57
两2个C搞混了 晕  谢谢各位啊
1