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

c语言问题

wluhao 发布于 2012-10-28 00:42, 261 次点击
#include<iostream>
#include<cmath>
using namespace std;
int main()
{double a,b,c,s,t;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{s=(a+b+c)*0.5;
t=sqrt(s*(s-a)*(s-b)*(s-c));
cout<<t<<endl;}
else
cout<<"its not a triangle!"<<endl;

return 0;}
}输入 4,5,6输出its not a triangle,为啥,该为scanf("%lf%lf%lf",&a,&b,&c)得到正确的结果,想知道他们的为啥不同
2 回复
#2
小小小火柴2012-10-28 11:08
   因为你定义的是double类型的, 所以你正确的调用输入函数是:scanf("%lf%lf%lf",&a,&b,&c).所以你这样输入才会得到正确的答案!
#3
额外覆盖2012-10-28 13:06
你在前面定义时是double 对应%lf,表示输入双精度或长的双精度,而%f为单精度
1