C语言编程问题?

2024-12-02 18:07:36
推荐回答(2个)
回答1:

如果按你的输出样例,那么12.5里9分钟对应的应该是10+7×2+2×3+2×2
意思就是公里数要舍去小数点来进行计算,而时间要分成两种情况来算,第一种不满5分钟0元,大于等于5分钟是按封顶来算的,因为这里9分钟是算了2个2元钱,也就是只要开始算钱不满5分钟也要算2块钱
因此你在计算mail(其实公里是mile)的时候,应该强制类型由double转为int来算才是合理的,因为要舍去小数点;而p2对应的是等待时间对应的价钱,所以应该要用if-else做逻辑判断,小于5赋值0,等于5的倍数时直接赋值time*2/5,其它情况应该按封顶来算,是(time/5+1)*2

回答2:

很高兴为您解答!
你的time和mail不用赋初值
p1应定义为double型,而且结果要四舍五入处理一下