本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
输入格式:
输出格式:
输入样例1:
2.6 2
结尾无空行
输出样例1:
10
结尾无空行
输入样例2:
5.1 4
输出样例2:
14
输入样例3:
12.5 9
输出样例3:
34
如下,这是我试的密码,lc1和lc2是把里程数给分成两部分,主要为了四舍五入。因为发现如果用离散型连if判断都会出现问题。
#include<stdio.h>
int main()
{
int shijian,lc1,lc2,money,mi;
double lichen;
scanf("%lf %d",&lichen,&shijian);
lc1 = lichen;//里程数的整数部分
lc2 = (int)(lichen*10) - lc1*10;//里程数的一位小数
//里程数小于等于3公里
if((lc1<=3&&lc2==0)||(lc1<=2&&lc2!=0)){
money = 10;
//里程数大于3小于等于13公里,2元路段
}else if((lc1<=13&&lc2==0)||(lc1<=12&&lc2!=0)){
money = 10 + (lc1-3)*2;
mi = lc2*2;
if(mi>14){
money += 2;
}else if(mi>8){
money += 1;
}
//里程数大于13公里,计算回返
}else if((lc1>=13)){
money = 30 + (lc1-13)*3;
mi = lc2*3;
//小数位收费
if(mi>=25){
money += 3;
}else if(mi>=15){
money += 2;
}else if(mi>=5){
money += 1;
}
}//0 3 6 9 12 15 18 21 24 27
//计算时间收费
if(shijian>=5){
money += shijian/5*2;
}
printf("%d\n",money);
return 0;
}
这个代码直接输入值的话样例1和样例2可以正确输出,但样例3还是不对,提交上去后,如图
总的来说现在让我疑惑的就是样例3,也就是最后一张图显示的X>10公里时代码该怎么写。
你题目的解答代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
double mile = 0;
int time = 0;
double price, price1, price2;
scanf("%lf %d", &mile, &time);//注意输入格式,时间是整型
if (mile <= 3)
{
price1 = 10;
}
else if (mile <= 10)
{
price1 = 10 + (mile - 3) * 2.0;
}
else
{
price1 = 10 + (10 - 3)*2.0 + (mile - 10)*3.0;
}
price2 = time/ 5 * 2;//等待时间费用
price = price1 + price2;
printf("%.0f\n", price);//结果四舍五入
return 0;
}
如有帮助,望采纳!谢谢!
#include <stdio.h>
int main()
{
double x,m;
int w;
scanf("%lf %d",&x,&w);
if(x<=3){
m=10;
}else if(x<=10){
m=10+(x-3)*2;
}else{
m=10+14+(x-10)*3;
}
if(int(m+0.5)>int(m)){
m+=1;
}
if(w>=5){
m=m+w/5*2;
}
printf("%d",int(m));
return 0;
}