问题标题: 酷町堂:1144

0
0

0
已采纳
徐熙晨
徐熙晨
新手光能
新手光能

if((printf("%.0f",int(cnt*1+0.5)/1.0))<0.5)
    printf("%.1f",cnt);
else 
    printf("%.0f",cnt+0.5); 

改成

if(cnt<=int(cnt)+0.5)
    printf("%.1f",cnt);
else 
    printf("%.1f",cnt+0.5);

 

0
阮俊雄
阮俊雄
新手光能
新手光能

首先看数据范围,建议用long double;

用long double定义一个变量后(注意清零),还要用int定义三个变量(假设为a,b,c);

最后拿3.3*a+5.0*b+8.4*c;

然后再判断保留一位小数后的小数部分,小数位不足0.5元的都不收,小数位多于或等于0.5元但是不足1元的,只收0.5元。

0
谢宇宸
谢宇宸
资深守护
资深守护
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    long double cnt=0;
    cin>>a>>b>>c;
    cnt=3.3*a+5.0*b+8.4*c;
    if((printf("%.0f",int(cnt*1+0.5)/1.0))<0.5)
    printf("%.1f",cnt);
    else 
    printf("%.0f",cnt+0.5); 
return 0;
}

哪里错了

0
王梓皓
王梓皓
高级守护
高级守护

核心代码:

if(s-x<0.5)
    cout<<x<<".0";
    else if(s-x>=0.5)
    cout<<x<<".5";

其中s是double,x是long long int.

0
我要回答