乌鱼芯 2024-10-20 09:33 采纳率: 66.7%
浏览 21

高速公路超速处罚的编程问题

#include<stdio.h>
int main()
{
    int a,b,c,d;
    float e,f;
    scanf("%d %d",&a,&b);
    c=b+0.1*b;
    d=b+0.5*b;
    if(a<c){
        printf("OK");
    }else if(a>=c&&a<=d){
        e=(a-b)/b*100.0;
        printf("Exceed %d%. Ticket 200",e);
    }else if(a>=d){
        f=(a-b)/b*100.0;
        printf("Exceed %d%. License Revoked",f);
    }
    return 0;
}


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

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

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

  • 写回答

1条回答 默认 最新

  • 无疆76 2024-10-20 09:36
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    您的程序在处理超速百分比的计算上有一些错误。您需要根据车速和限速来计算实际的超速百分比,并根据这个百分比来确定应该采取的处理措施。此外,程序在处理超速百分比输出格式上也需要改进,以便满足输出格式的要求。以下是修正后的程序:

    #include <stdio.h>
    
    int main() {
        int speed, limit;
        float exceed_percent; // 用于存储超速百分比
        scanf("%d %d", &speed, &limit);
    
        if (speed <= limit) {
            printf("OK\n"); // 正常行驶
        } else {
            exceed_percent = (speed - limit) / limit * 100.0; // 计算超速百分比
            if (exceed_percent < 10.0) { // 超速小于10%
                printf("Exceed %.0f%%.\n", exceed_percent); // 输出超速百分比,精确到整数
            } else if (exceed_percent < 50.0) { // 超速在10%-50%之间(含)
                printf("Exceed %.0f%%.\nTicket 200", exceed_percent); // 输出超速百分比和罚款信息,精确到整数
            } else { // 超速超过或等于50%
                printf("Exceed %.0f%%.\nLicense Revoked", exceed_percent); // 输出超速百分比和吊销驾驶证信息,精确到整数
            }
        }
        return 0;
    }
    

    此程序首先读取车速和限速。然后,如果车速小于或等于限速,则输出“OK”。否则,计算超速百分比并根据超速百分比输出相应的处理意见。注意,在输出超速百分比时使用了%.0f格式说明符来确保输出为整数。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月20日