习题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
int main()
{
  int space,space_n;
  double space_m;
  scanf("%d %d",&space,&space_n);
  space_m = (space - space_n) * 100.0 / space_n;
/*
这里需要换成浮点型进行计算,整型对小数点有取舍,导致答案错误,在对比了整型和浮点型的计算结果后            发现,整型计算直接得出结果的整数位,而浮点型计算结果在不保留小数位时有四舍五入的效果,如5/2,整数型计算结果为2,而浮点型结果为3
*/
  if(space_m < 10)
  {printf("OK\n");}
  else if(space_m >= 10 && space_m < 50)
  {printf("Exceed %.0lf%%. Ticket 200\n",space_m);}
  else
  {printf("Exceed %.0lf%%. License Revoked\n",space_m);}
  return 0;
}

 

你可能感兴趣的:(习题3-2 高速公路超速处罚 (15分)(有个小坑))