鱼C论坛

 找回密码
 立即注册
查看: 1537|回复: 6

[已解决]求助

[复制链接]
发表于 2021-10-14 21:01:01 | 显示全部楼层 |阅读模式

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

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

x
按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。

输入格式:
输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。

输出格式:
在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x%. Ticket 200”;若应吊销驾驶证,则输出“Exceed x%. License Revoked”。其中x是超速的百分比,精确到整数。

输入样例1:
65 60
结尾无空行
输出样例1:
OK
结尾无空行
输入样例2:
110 100
结尾无空行
输出样例2:
Exceed 10%. Ticket 200
结尾无空行
输入样例3:
200 120
结尾无空行
输出样例3:
Exceed 67%. License Revoked
结尾无空行
#include <stdio.h>
int main(void)
{
        double speed,limit;
        scanf("%lf %lf", &speed, &limit);
        
        if(speed<limit){
                printf("OK");
        }else if(speed>=1.1*limit && speed<1.5*limit){
                printf("Exceed %.0f%%. Ticket 200", (speed-limit)/limit*100);
        }else{
                printf("Exceed %.0f%%. License Revoked", (speed-limit)/limit*100);
        }
        return 0;
}
运行 110 100 的一个错误,大神看看哪不合适
最佳答案
2021-10-14 21:23:13
本帖最后由 jhq999 于 2021-10-14 21:25 编辑
if(speed>=int(1.1*limit) && speed<int(1.5*limit))\\1.1*limit小数部分未必为零
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-14 21:23:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2021-10-14 21:25 编辑
if(speed>=int(1.1*limit) && speed<int(1.5*limit))\\1.1*limit小数部分未必为零
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-14 21:25:02 | 显示全部楼层
#include <stdio.h>
int main(void)
{
        int speed,limit;
        scanf("%d %d", &speed, &limit);
        
        if (speed*10>=15*limit  ){
                printf("Exceed \%50. pass die");
               
        }else  if (speed*10>=11*limit  &&  speed*10<15*limit){
                printf("Exceed \%10. Ticket 200");
        }else{
              printf("OK");
        }
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-14 21:28:03 | 显示全部楼层
不用scanf,直接赋值,应该可以运行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-14 21:41:53 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-14 22:06:33 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-10-14 22:09 编辑
兄弟,你的题目已经说明:其中x是超速的百分比,精确到整数。(是整数!)

代码:
#include <stdio.h>
#include <math.h>

int main(){
    int speed, limit;
    scanf("%d %d", &speed, &limit);
    if(speed > (limit*1.1) || speed == (int)(limit*1.1)){ // 因为浮点数精度问题,这里采用双重保险,int 和 float(大于就用 float,等于就用 int)
        int exceed = ceil(((speed-limit)/(float)limit)*100);
        printf("Exceed %d%% Ticket 200", exceed); // ceil 函数:四舍五入
    }
    else if(speed > (limit*1.5) || speed == (int)(limit*1.5)){ // 如上
        int exceed = ceil(((speed-limit)/(float)limit)*100);
        printf("Exceed %d%% License Revoked", exceed);
    }
    else printf("OK");
}
65 60
OK

200 120
Exceed 67% Ticket 200

200 120
Exceed 67% Ticket 200
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-15 20:26:44 | 显示全部楼层
傻眼貓咪 发表于 2021-10-14 22:06
本帖最后由 傻眼貓咪 于 2021-10-14 22:09 编辑
兄弟,你的题目已经说明:其中x是超速的百分比,精确到整 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 02:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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