浙大版《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 语句有两条执行分支。
- 应注意%的写法,只需要在占位控制符中写2个%,即%%。
- 对于n=(M-N)0.1/N1000语句,必须要乘以0.1,否则它会按整形来计算,最后使得结果出现错误。
- 做题时候一定要注意题目中要求的输入输出格式,否则在提交时候会出现格式错误的问题。