如图
编写过程中,我一直在意输入格式保留一位小数,故我采用了%.lf %.f,改了好多字符类型。我不理解为什么输入x=5.1等数字,在调试过程中发现并不精准。并且if语句利判断条件为假,为什么还要往下进行??
将第六行%.lf改为%lf,第11行修改为else if (x>3&&x<=10),第十五行修改为“m=10+(10-3)*2+(x-10)*3+time/5*2;”,在这处初步认为是超过起步里程3公里后又行驶超过10公里的路程,其实是>10。
#include <stdio.h>
int main()
{
double x;
int time;
scanf("%lf %d",&x,&time);
double m;
if (x<=3){
m=10+time/5*2;
}
else if (x>3&&x<=10){
m=10+(x-3)*2+time/5*2;
}
else if (x>10){
m=10+(10-3)*2+(x-10)*3+time/5*2;
}
int n=(int)(m+0.5);
printf("%d",n);
}
#include <stdio.h>
int main()
{
float x,m;
int time;
scanf("%f %d",&x,&time);
if (x<=3){
m=10;
}
else if(x>3&&x<=10){
m=10+(x-3)*2;
}
else if (x>10){
m=10+(10-3)*2+(x-10)*3;
}
if(time>=5){
m+=(time/5)*2;
}
int n=(int)(m+0.5);
printf("%d",n);
}
第二种方法参考此处本题要求根据某城市普通出租车收费标准编写程序进行车费计算。
二者细微之处在于,对方将临时停车费用单拿出来。