按照规定,在高速公路上行使的机动车,达到或超出本车道限速的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 <math.h>
int main() {
double speed, xs;
int x;
scanf("%lf %lf", &speed, &xs);
x = (int)round(((speed / xs) - 1) * 100);//x是超速的百分比
if (x >= 10 && x < 50) {
printf("Exceed %d%%. Ticket 200", x);
} else if (x >= 50) {
printf("Exceed %d%%. License Revoked", x);
} else if (x < 10) {
printf("OK");
}
return 0;
}
其中要注意的是,超速百分比x需要四舍五入,要用到round函数
拓展 小数点后两位四舍五入该怎么写:
#include <stdio.h>
#include <math.h>
int main() {
double num = 12.345678; // 例子中的浮点数
double rounded_num = round(num * 100.0) / 100.0; // 将数字保留两位小数并四舍五入
printf("原始数字: %.6f\n", num); // 原始数字
printf("四舍五入后的数字(保留两位小数): %.2f\n", rounded_num); // 四舍五入后的数字,保留两位小数
return 0;
}