鱼C论坛

 找回密码
 立即注册
查看: 3892|回复: 21

sos!!!

[复制链接]
发表于 2019-10-26 15:03:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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 求助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-26 15:08:25 | 显示全部楼层
"mile<=3"
"mile>3&&mile<=10"

双引号是几个意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:08:54 | 显示全部楼层

hi 表示他是整形的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:09:41 | 显示全部楼层

你编译一下然后运行,结果老是那个,为什么啊,帮帮
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:12:16 | 显示全部楼层
怎么了?哪里的问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-26 15:46:13 | 显示全部楼层
王昱晨c语言 发表于 2019-10-26 15:12
怎么了?哪里的问题?

if和else括号里的双引号都去了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:47:27 | 显示全部楼层
yuweb 发表于 2019-10-26 15:46
if和else括号里的双引号都去了

嗯嗯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:48:11 | 显示全部楼层
yuweb 发表于 2019-10-26 15:46
if和else括号里的双引号都去了

还是不行啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-26 15:49:39 | 显示全部楼层

哥,帮忙看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-27 15:00:59 From FishC Mobile | 显示全部楼层
本帖最后由 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))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-28 09:06:35 | 显示全部楼层
scanf("%.1f %d",&mile,&t);中%.1f改成%1f,还有price建议用double定义
  1. #include "stdio.h"
  2. int main()
  3. {
  4.         int t;
  5.         float price,mile;
  6.         scanf("%1f %d",&mile,&t);
  7.         if (mile <= 3)
  8.         {
  9.                 price=10 + t/5.0*2;
  10.                 printf("%f",price);
  11.         }
  12.         else if(mile>3 && mile<=10)
  13.         {
  14.                 price=10+(mile-3)*2+t/5.0*2;
  15.                 printf("%f",price);
  16.         }
  17.         else
  18.         {
  19.                 price=24+(mile-10)*3+t/5.0*2;
  20.                 printf("%d",price);
  21.         }
  22.         return 0;
  23. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-29 18:52:51 | 显示全部楼层
yuweb 发表于 2019-10-28 09:06
scanf("%.1f %d",&mile,&t);中%.1f改成%1f,还有price建议用double定义

hi,我这里结果还是有问题,怎么改?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-29 21:39:54 | 显示全部楼层
bin554385863 发表于 2019-10-27 15:00
双引号表示那是一个字符串字面量,
不管是单个字符还是一个字符串在if看来都是非零的为真的。
if后面的语 ...

嗯嗯,多谢,我再试试!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-30 08:44:38 | 显示全部楼层
王昱晨c语言 发表于 2019-10-29 18:52
hi,我这里结果还是有问题,怎么改?

要什么结果,题目给一下,不然我也不知道你的代码逻辑正不正确
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-30 22:16:23 | 显示全部楼层
yuweb 发表于 2019-10-30 08:44
要什么结果,题目给一下,不然我也不知道你的代码逻辑正不正确

题目描述:
   编写程序,根据某城市普通出租车收费标准进行车费计算。标准如下:
   起步里程为3公里,起步费10元;
   超出起步里程后10公里内,每公理2元;
   超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
   营运过程中,因路阻及乘客要求临时停车等待的,按每5分钟2元计费(不足5分钟不收费)。

输入格式:共一行,包括行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔

输出格式:在一行中输出乘客应支付的车费(单位为元),结果四舍五入保留整数。

示例:
输入:40.0 7
输出: 116
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-30 22:17:08 | 显示全部楼层
yuweb 发表于 2019-10-30 08:44
要什么结果,题目给一下,不然我也不知道你的代码逻辑正不正确

谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-31 09:17:40 | 显示全部楼层
本帖最后由 yuweb 于 2019-10-31 16:16 编辑

你有几个地方可能逻辑有点问题
1、题目中要求结果四舍五入保留整数,price应该是整数,四舍五入
2、营运过程中,因路阻及乘客要求临时停车等待的,按每5分钟2元计费(不足5分钟不收费)
5分钟之内是不计费的,而6分钟的话应该就要算10分钟的价钱了(每5分钟2元计费),所以应该向上取整
3、mile没有限制正数
目前考虑到这些。不大完整的话自己补充
  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5.         int t,price;
  6.         float mile;
  7.         scanf("%f %d",&mile,&t);
  8.         if(mile<0){
  9.                 printf("请输入正数!\n");
  10.                 return 0;
  11.         }
  12.        
  13.         if (mile>=0 && mile <= 3)
  14.         {
  15.                 if(t<5)
  16.                         price = 10;//不足5分钟不收费
  17.                 else
  18.                         price = int(10+ceil(t/5.0)*2);//ceil是代表向上取整,int是代表四舍五入取整
  19.                 printf("%d\n",price);
  20.         }
  21.         else if(mile>3 && mile<=10)
  22.         {
  23.                 if(t<5)
  24.                         price = int(10+(mile-3)*2);//不足5分钟不收费
  25.                 else
  26.                         price = int(10+(mile-3)*2+ceil(t/5.0)*2);//ceil是代表向上取整,int是代表四舍五入取整
  27.                 printf("%d\n",price);
  28.         }
  29.         else
  30.         {
  31.                 if(t<5)
  32.                         price = int(24+(mile-10)*3);//不足5分钟不收费
  33.                 else
  34.                         price = int(24+(mile-10)*3+ceil(t/5.0)*2);//ceil是代表向上取整,int是代表四舍五入取整
  35.                 printf("%d\n",price);
  36.         }
  37.         return 0;
  38. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-31 15:13:17 | 显示全部楼层
yuweb 发表于 2019-10-31 09:17
你有几个地方可能逻辑有点问题
1、题目中要求结果四舍五入保留整数,price应该是整数,四舍五入
2、营运 ...

还是不对!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-31 15:24:43 | 显示全部楼层
请问你要实现啥功能呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-31 15:28:09 | 显示全部楼层
54黑科技 发表于 2019-10-31 15:24
请问你要实现啥功能呀?

题目描述:
   编写程序,根据某城市普通出租车收费标准进行车费计算。标准如下:
   起步里程为3公里,起步费10元;
   超出起步里程后10公里内,每公理2元;
   超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
   营运过程中,因路阻及乘客要求临时停车等待的,按每5分钟2元计费(不足5分钟不收费)。

输入格式:共一行,包括行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔

输出格式:在一行中输出乘客应支付的车费(单位为元),结果四舍五入保留整数。

示例:
输入:40.0 7
输出: 116

(谢谢!)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 18:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表