| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 261 人关注过本帖
标题:c语言问题
只看楼主 加入收藏
wluhao
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-9-25
结帖率:70%
收藏
已结贴  问题点数:3 回复次数:2 
c语言问题
#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)得到正确的结果,想知道他们的为啥不同
搜索更多相关主题的帖子: include c语言 
2012-10-28 00:42
小小小火柴
Rank: 5Rank: 5
来 自:江西赣州
等 级:职业侠客
威 望:3
帖 子:141
专家分:337
注 册:2012-9-28
收藏
得分:1 
   因为你定义的是double类型的, 所以你正确的调用输入函数是:scanf("%lf%lf%lf",&a,&b,&c).所以你这样输入才会得到正确的答案!

   好好学习!
2012-10-28 11:08
额外覆盖
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:城市猎人
威 望:6
帖 子:1726
专家分:5757
注 册:2012-9-22
收藏
得分:1 
你在前面定义时是double 对应%lf,表示输入双精度或长的双精度,而%f为单精度

我现在所学的一切都是为了游戏!!!为了游戏,加油!加油!努力!
2012-10-28 13:06
快速回复:c语言问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.105902 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved