请查看下一段代码的问题 #include<stdio.h> int main(){ int spd,lim,flag=0; scanf("%d %d",&spd,&lim); if(spd>=(lim1.5)) flag=0; else if(spd>=(lim1.1)) flag=1; else flag=2; double t=(spd-lim)*100/spd; if(flag==2) printf("OK"); else if(flag==1) printf("Exceed %.0lf%. Ticket 200",t); else printf("Exceed %.0lf%. Ticket 200",t); }
时间: 2024-01-14 11:05:13 浏览: 406
这段代码可能存在以下问题:
1. 第5行的 `(lim1.5)` 应该是 `(lim*1.5)`,表示限速的1.5倍。
2. 第8行和第9行的输出语句都有一个多余的百分号 `%`,应该去掉。
3. 第8行和第9行的输出语句都输出了 "Ticket 200",应该根据超速情况输出相应的处理意见。
修改后的代码如下:
```
#include <stdio.h>
int main() {
int spd, lim, flag = 0;
scanf("%d %d", &spd, &lim);
if (spd >= lim * 1.5) {
flag = 2;
} else if (spd >= lim * 1.1) {
flag = 1;
} else {
flag = 0;
}
double t = (spd - lim) * 100.0 / spd;
if (flag == 0) {
printf("OK");
} else if (flag == 1) {
printf("Exceed %.0lf%%. Ticket 200", t);
} else {
printf("Exceed %.0lf%%. License Revoked", t);
}
return 0;
}
```
这样可以保证代码的正确性。
相关问题
#include<stdio.h> int main{ int spd,lim,flag=0; scanf("%d %d",&spd,&lim); if(spd>=(lim*1.5)) flag=0; else if(spd>=(lim*1.1)) flag=1; else flag=2; double t=(spd-lim)*100/spd switch(flag) case 2: printf("OK/n"); break; case 0: printf("Exceed %.lf%. License Revoked",t);break; case 1: printf("Exceed %.lf%. Ticket 200",t);break; }
这是一个简单的交通违规罚款计算程序,根据输入的车速和限速,判断是否超速,并输出相应的罚款或警告信息。程序中缺少 main 函数的括号,应该为 int main()。另外,程序中的 %.lf 应该改为 %.0lf,表示输出一个整数。以下是代码的修正版:
```
#include <stdio.h>
int main() {
int spd, lim, flag = 0;
scanf("%d %d", &spd, &lim);
if (spd >= lim * 1.5)
flag = 0;
else if (spd >= lim * 1.1)
flag = 1;
else
flag = 2;
double t = (spd - lim) * 100.0 / spd;
switch (flag) {
case 2:
printf("OK\n");
break;
case 0:
printf("Exceed %.0lf%%. License Revoked\n", t);
break;
case 1:
printf("Exceed %.0lf%%. Ticket 200\n", t);
break;
}
return 0;
}
```
阅读全文