问题标题: 2162 找零问题怎么写?

1
1
已解决
王睿卿
王睿卿
高级守护
高级守护
小明去商店买了三样东西价格分别为M,N,H,由于最后算总价的时候没有零钱找,只有五角或者1元的零钱,如果最后的小数是0-4之间的就舍去,如果是5-9之间的就变成5。计算最后购买商品总价。

 


0
已采纳
张瑀涵
张瑀涵
高级光能
高级光能

这道题主要思路在于最后的“四舍五入”(不是真正意义的四舍五入)。

首先,我们可以求出把最后的总价的小数部分求出来(设总价为s),及s-(int)(s)   (先假设结果为x)

如果x>=0并且x<=0.4,最后输出(int)(s);

其他,最后输出(int)(s)+0.5。

0
杨陈卓
杨陈卓
新手天翼
新手天翼

    d=a+b+c,x=(int)d,y=d-x;

    if(y>=0&&y<0.5)

        d=x;

    if(y>=0.5&&y<=1)

        d=x+0.5;

    printf("%.1f\n",d);

 

0
程思怡
程思怡
中级守护
中级守护

先计算总价,在四舍五入

0
陆麟瑞
陆麟瑞
资深天翼
资深天翼

先计算总价,然后判断小数部分与0.5的比较。

a=a+b+c;
    if(a-(int)a>=0.5) cout<<(int)a<<".5";
    else cout<<(int) a<<".0";
0
马佳滢
马佳滢
新手天翼
新手天翼

1.定义双精度实数m,n,b,c(double);

2.输入m,n,b;

3.把m+n+b的值赋给c;

c=m+n+b;

4.判断c-int型的c是不是比0.5小;

if(c-(int)c<0.5)

如果判断成立,把(int)c的值赋给c,输出c;

 
c=(int)c;
cout<<c<<".0";

 

5.否则(判断不成立),把(int)c的值赋给c再加0.5,输出c;

else{
c=(int)c+0.5;
cout<<c;
}

 

0
王紫馨
王紫馨
高级守护
高级守护
    d=x-(int)x;//x是价格和,d是小数部分 
    if(d>=0.1&&d<0.5){//判断小数部分是0~4还是5~9 
        cout<<(int)x<<".0";
    }
    else if(d>=0.5&&d<=0.9){
        cout<<(int)x<<".5";
    }
    else cout<<x;

上面是核心代码

主要用类型转换来实行目的

0
李恩泽
李恩泽
修练者
修练者
核心部分:
if(hxp-m<0.5)
    {
        double mm=hxp-m;
        hxp-=mm;
        printf("%0.1f",hxp);
    }
    else
    {
        double px=m+0.5;
        printf("%0.1f",px);
    }

望采纳

0
0
0
我要回答