7-6 高速公路超速处罚
按照规定,在高速公路上行使的机动车,达到或超出本车道限速的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
说明
这个题也比较一般,不难,只要会算比例就好了,还有一点需要注意的地方就是当输出%号,我们需要用到两个%%才能输出一个%,还有一个地方就是数据类型转换,如果我们不用数据类型转化的话,我们需要将速度和限速都定义为double型。
代码
#include <stdio.h>
int main(void)
{
int speed,limited;
double exceed=0;
scanf("%d%d",&speed,&limited);
exceed=(double)speed/limited-1;
if(exceed<0.1)
printf("OK");
else if(exceed<0.5)
printf("Exceed %.0f%%. Ticket 200",exceed*100);
else
printf("Exceed %.0f%%. License Revoked",exceed*100);
return 0;
}
解析
#include <stdio.h>
int main(void)
{
int speed,limited;//定义速度和限速,两个都为int型
double exceed=0; //这里表示速度超过的部分
scanf("%d%d",&speed,&limited);
exceed=(double)speed/limited-1;//这里需要用到数据类型转换,如果不用程序将舍弃掉后面的小数部分,
if(exceed<0.1) //小于10%
printf("OK");
else if(exceed<0.5) //大于等于10%小于50%
printf("Exceed %.0f%%. Ticket 200",exceed*100);
else //大于等于50%时
printf("Exceed %.0f%%. License Revoked",exceed*100);
return 0;
}