标题:求大神帮忙 看一下哪里错了~
只看楼主
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:0 
回复 9楼 limited
minutes=minutes+seconds/60; //这里,不管second等于到少,second/60 永远等于0 ,因为second<60,而且second是整型
       mile=minutes*0.2+mile;  //minutes是整型,而mile是浮点型,类型不匹配啊  应该写成 mile=(double)minutes*0.2+mile; 强制转换类型
        if(mile<=3){
            cost=10;
        }
        else if(mile<=10){   //(mile>3&&mile<=10)
            cost=10+2*(mile-3);
        }
        else{
            cost=10+14+3*(mile-10);
        }


[ 本帖最后由 韶志 于 2013-3-27 00:36 编辑 ]

三十年河东,三十年河西,莫欺少年穷!
2013-03-27 00:27
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
得分:2 
回复 楼主 limited
运价计费尾数四舍五入,保留到元。。
最后得到的cost是要处理的,cost=(int)(cost+0.5);是把cost四舍五入,得到的就是四舍五入后的数了。
2013-03-27 09:11
shmilyflf
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:356
专家分:1008
注 册:2012-12-9
得分:0 
我表示没怎么看懂你的题目,你说每五分钟按一公里计算,那不足五分钟的还计算吗?还是就是五分钟对应一公里,每个时刻都对应相应的公里数?
1、如果是每个时刻对应相应的公里数,那你可以seconds=minutes*60+seconds; mile=(double)seconds/(5*60)+mile;
以下就是分情况计算花费了,最后再把得到的钱数四舍五入就行了。
2、如果是不足五分钟的不计算,那你可以mile=minutes/5+mile;
以下就是分情况计算花费了,最后再把得到的钱数四舍五入就行了。
第二种情况不需要用(double)强制类型转换也是可以的,编译器会自己转换,从低精度的向高精度的转换是不会出错的。
2013-03-27 09:35
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:0 
回复 13楼 shmilyflf
同理,题目意思不够明了

三十年河东,三十年河西,莫欺少年穷!
2013-03-27 09:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-402036-1-1.html




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

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