问题标题: 酷町堂:2162找零问题

1
0
已解决
李泽远
李泽远
高级天翼
高级天翼

求为什么错了?90分?

#include<bits/stdc++.h>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(void)
{
 double a,b,c,x;
 double sum=0;
 cin>>a>>b>>c;
 sum=a+b+c;//加起来
 x=sum-((int)(sum));//取小数部分
 if(x>=0.0&&x<=0.4)//是0到4的话
  x=0.0;//小数部分变成0
 else
  x=0.5;//小数部分变成5
 sum=(int)sum+x;//整数部分加小数部分
 printf("%.1f",sum);
 return 0;
}

大神速速答!!!我写了注释,应该能看懂的。

李泽远在2019-07-27 09:29:08追加了内容

24酷町币谁要啊??!!

快快快!!!

还有经验值!!!

告诉我哪错了??!!

24酷町币加上lots of经验值!!

李泽远在2019-07-27 09:35:44追加了内容

友军支援我!!!

(看头像)

(看头像)

(看头像)


0
已采纳
赵逸凡
赵逸凡
初级启示者
初级启示者

首先你的头文件太多了,浪费内存和时间,此题只用cstdio或者再加个iostream就够够了。

这道题可以把

if(x>=0.0&&x<=0.4)//是0到4的话

改成

if(x>=0.0&&x<0.5)//是0到4的话

至于为什么这么改,我以前的范老师好像说过因为担心x是(两位小数?),我也记得不太清了,只记得说好像x万一大于0.4并且小于0.5,就得这样写...建议你可以问下老师。

我以前也是差不多你这种写法,但是后来改了AC。

建议不要main(void)写法,万一return值为1呢?

0
0
0
陈思远
陈思远
修练者
修练者

2133的问题我也是搜的,网址是第一个问题的,没有抄袭,信不信看你,还有这题这么解:

首先sum累加三个的总价sum=m+n+h;(变量我用原题的),如果sum-强转int的sum>=0.5的话,输出强转int的sum再原样输出".5"

否则输出强转int的sum再原样输出".0"。

条件判断:if(sum-(int)sum>=0.5) 

成立输出:cout<<(int)sum<<".5"; 

不成立输出:cout<<(int)sum<<".0";

望采纳谢谢,思路不清楚请留言,我会看的。

 

还有最重要的:

 

面壁者,那谁家的小谁•李泽远  我是你的破壁人  陈思远

0
陈思远
陈思远
修练者
修练者

我对三体说话,罗辑的声音不大,

0
我要回答