判断三条边能不能组成三角形

qq_21880407 2014-10-11 09:35:12
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
int a,b,c;(用doouble代替)
printf("please enter a,b,c:");
scanf("%d %d %d",&a,&b,&c);(用&f代替)
if(a+b>c&&a+c>b&&b+c>a)
{
double s,area;
s=(a+b+c)/2;
area=(s*(s-a)*(s-b)*(s-c));
cout<<setiosflags(ios::fixed)<<setprecision(4);

printf("area=%f",area);

}

else printf("it is not a trilateral");
return 0;
为什么替换后不能正常运行
...全文
303 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
brookmill 2014-10-15
  • 打赏
  • 举报
回复
引用 2 楼 qq_21880407 的回复:
为什么要用%lf, double 和 float 都是浮点数啊
double是8字节的,float是4字节。scanf是可变参数的函数,没有类型检查。 给scanf传进去的的是8字节的double指针,但是scanf并不知道这个指针的类型,它只是从%f判断把这个指针当作4字节的float指针来用。
707wk 2014-10-12
  • 打赏
  • 举报
回复
楼上正解。。。
sty_app 2014-10-12
  • 打赏
  • 举报
回复
引用 2 楼 qq_21880407 的回复:
为什么要用%lf, double 和 float 都是浮点数啊
浮点数的单精度和双精度 是两种不同的数据类型,记下来就就好了
qq_21880407 2014-10-12
  • 打赏
  • 举报
回复
为什么要用%lf, double 和 float 都是浮点数啊
brookmill 2014-10-11
  • 打赏
  • 举报
回复
double要用%lf float用%f

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧