sos!!!
#include"stdio.h"int main()
{
int t;
float price,mile;
scanf("%.1f %d",&mile,&t);
if ("mile<=3")
{
price=10+t/5.0*2;
printf("%f",price);
}
else if("mile>3&&mile<=10")
{
price=10+(mile-3)*2+t/5.0*2;
printf("%f",price);
}
else
{
price=24+(mile-10)*3+t/5.0*2;
printf("%d",price);
}
return 0;
}
为什么结果老是10.400000 求助 "mile<=3"
"mile>3&&mile<=10"
双引号是几个意思? ba21 发表于 2019-10-26 15:08
"mile3&&mile
hi 表示他是整形的 ba21 发表于 2019-10-26 15:08
"mile3&&mile
你编译一下然后运行,结果老是那个,为什么啊,帮帮 怎么了?哪里的问题? 王昱晨c语言 发表于 2019-10-26 15:12
怎么了?哪里的问题?
if和else括号里的双引号都去了 yuweb 发表于 2019-10-26 15:46
if和else括号里的双引号都去了
嗯嗯
yuweb 发表于 2019-10-26 15:46
if和else括号里的双引号都去了
还是不行啊 ba21 发表于 2019-10-26 15:08
"mile3&&mile
哥,帮忙看看{:7_125:}
本帖最后由 bin554385863 于 2019-10-27 15:02 编辑
双引号表示那是一个字符串字面量,
不管是单个字符还是一个字符串在if看来都是非零的为真的。
if后面的语句必然执行。
scanf("%.1f %d",&mile,&t);
你见过书上/网上正确的代码,
哪个是在scanf里面用%.lf的?
mile>3&&mile<=10
还有这一句,你知道比较的顺序么?
是先算mile>3再算&&最后再算<=?
还是先算3&&mile再算大小比较?
如果你不能确定计算顺序,
那么使用小括号强制确定计算顺序是一个好习惯。
这一句最好写成这样:
if((mile>3)&&(mile<=10))
scanf("%.1f %d",&mile,&t);中%.1f改成%1f,还有price建议用double定义
#include "stdio.h"
int main()
{
int t;
float price,mile;
scanf("%1f %d",&mile,&t);
if (mile <= 3)
{
price=10 + t/5.0*2;
printf("%f",price);
}
else if(mile>3 && mile<=10)
{
price=10+(mile-3)*2+t/5.0*2;
printf("%f",price);
}
else
{
price=24+(mile-10)*3+t/5.0*2;
printf("%d",price);
}
return 0;
} yuweb 发表于 2019-10-28 09:06
scanf("%.1f %d",&mile,&t);中%.1f改成%1f,还有price建议用double定义
hi,我这里结果还是有问题,怎么改? bin554385863 发表于 2019-10-27 15:00
双引号表示那是一个字符串字面量,
不管是单个字符还是一个字符串在if看来都是非零的为真的。
if后面的语 ...
嗯嗯,多谢,我再试试! 王昱晨c语言 发表于 2019-10-29 18:52
hi,我这里结果还是有问题,怎么改?
要什么结果,题目给一下,不然我也不知道你的代码逻辑正不正确 yuweb 发表于 2019-10-30 08:44
要什么结果,题目给一下,不然我也不知道你的代码逻辑正不正确
题目描述:
编写程序,根据某城市普通出租车收费标准进行车费计算。标准如下:
起步里程为3公里,起步费10元;
超出起步里程后10公里内,每公理2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车等待的,按每5分钟2元计费(不足5分钟不收费)。
输入格式:共一行,包括行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔
输出格式:在一行中输出乘客应支付的车费(单位为元),结果四舍五入保留整数。
示例:
输入:40.0 7
输出: 116 yuweb 发表于 2019-10-30 08:44
要什么结果,题目给一下,不然我也不知道你的代码逻辑正不正确
谢了
本帖最后由 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;
} yuweb 发表于 2019-10-31 09:17
你有几个地方可能逻辑有点问题
1、题目中要求结果四舍五入保留整数,price应该是整数,四舍五入
2、营运 ...
还是不对! 请问你要实现啥功能呀?
54黑科技 发表于 2019-10-31 15:24
请问你要实现啥功能呀?
题目描述:
编写程序,根据某城市普通出租车收费标准进行车费计算。标准如下:
起步里程为3公里,起步费10元;
超出起步里程后10公里内,每公理2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车等待的,按每5分钟2元计费(不足5分钟不收费)。
输入格式:共一行,包括行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔
输出格式:在一行中输出乘客应支付的车费(单位为元),结果四舍五入保留整数。
示例:
输入:40.0 7
输出: 116
(谢谢!)
页:
[1]
2