习题3-2 高速公路超速处罚

浙大版《C语言程序设计(第3版)》

习题3-2 高速公路超速处罚 (15分)

按照规定,在高速公路上行使的机动车,达到或超出本车道限速的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>
#include <stdlib.h>
int main()
{
    
    
    int M,N;
    double n;
    scanf("%d %d",&M,&N);
    n=(M-N)*0.1/N*1000;
  if(n>=10&&n<50){
    
    
    printf("Exceed %.f%%. Ticket 200",n);
  }
  else  if(n>=50){
    
    
    printf("Exceed %.f%%. License Revoked",n);
  }
    else{
    
    
        printf("OK");
    }
    return 0;
}

题目分析:

1.细读题目要求可知本题可用if…else结构来实现。if 语句的执行流程:首先判断关键词 if 后括号内条件表达式的值,如果该表达式的值为逻辑真(非 0),则执行 if 体,接着执行 if 体后的其他语句;否则,若该表达式的值为逻辑假(0),则不执行该 if 体,直接执行 if 体后的其他语句。if 语句的执行流程图如下所示。由图可见,if 语句有两条执行分支。
在这里插入图片描述

  1. 应注意%的写法,只需要在占位控制符中写2个%,即%%。
  2. 对于n=(M-N)0.1/N1000语句,必须要乘以0.1,否则它会按整形来计算,最后使得结果出现错误。
  3. 做题时候一定要注意题目中要求的输入输出格式,否则在提交时候会出现格式错误的问题。

猜你喜欢

转载自blog.csdn.net/crraxx/article/details/109103731