本帖最后由 yuweb 于 2019-10-31 16:16 编辑
你有几个地方可能逻辑有点问题
1、题目中要求结果四舍五入保留整数,price应该是整数,四舍五入
2、营运过程中,因路阻及乘客要求临时停车等待的,按每5分钟2元计费(不足5分钟不收费)
5分钟之内是不计费的,而6分钟的话应该就要算10分钟的价钱了(每5分钟2元计费),所以应该向上取整
3、mile没有限制正数
目前考虑到这些。不大完整的话自己补充#include <stdio.h>
#include <math.h>
int main()
{
int t,price;
float mile;
scanf("%f %d",&mile,&t);
if(mile<0){
printf("请输入正数!\n");
return 0;
}
if (mile>=0 && mile <= 3)
{
if(t<5)
price = 10;//不足5分钟不收费
else
price = int(10+ceil(t/5.0)*2);//ceil是代表向上取整,int是代表四舍五入取整
printf("%d\n",price);
}
else if(mile>3 && mile<=10)
{
if(t<5)
price = int(10+(mile-3)*2);//不足5分钟不收费
else
price = int(10+(mile-3)*2+ceil(t/5.0)*2);//ceil是代表向上取整,int是代表四舍五入取整
printf("%d\n",price);
}
else
{
if(t<5)
price = int(24+(mile-10)*3);//不足5分钟不收费
else
price = int(24+(mile-10)*3+ceil(t/5.0)*2);//ceil是代表向上取整,int是代表四舍五入取整
printf("%d\n",price);
}
return 0;
}
|