用c语言实现科目三模拟灯光考试

    xiaoxiao2025-03-16  40

    用c语言实现科目三模拟灯光考试

    这是我第一次写博客。。。。 考驾照时,科目三有一个夜间模拟灯光的使用,我老是错(I ‘m a boy PS:没有性别歧视的意思 (^@^) )所以想写一个程序自己一个人练习练习, 题目是这个样子的:

    话不多说 1. 既然是考试,它的出题是随机的,我不知道怎么产生随机数,浏览了一下大佬的博客,学习了一下子 srand((int)time(NULL));//产生随机数的种子 i=rand()%m+n; m假如是17,他就会产生0~16之间的数(至于怎么产生浮点随机数,,,另谋高就。。。) +n就会在0和16一起加,比如n为2;他就会产生2~18中的随机整数 2. switch() { case 1: case 2: … … } 这个用法不用我过多介绍了吧,不过一行一行打出来很麻烦,有大佬知道怎么优化的欢迎评论。 意思就是随机产生题号(数字),每个题号打印对应的题目,答错会显示错误 3. 自定义函数 这明显可以简化打字工作量,这是我的想法,所以我就这么用了

    接下来就是我的low low的代码(菜鸡一个轻喷5555):

    #include <stdio.h> #include <stdlib.h> #include <time.h> void tip(void) { printf("近光灯请选1\n"); printf("远光灯请选2\n"); printf("远近交替灯请选3\n"); printf("警示灯示廓灯请选4\n"); printf("打开左转向请选5\n"); printf("打开右转向请选6\n"); } int main() { int a[17],i,j,r,t; for(i=0;i<17;i++) { a[i]=i+1; } for(j=0;j<=6;j++) { srand((int)time(NULL));//产生随机数的种子 i=rand(); switch(a[i]) { case 1:printf("***请开启前照灯****\n\n");tip(); scanf("%d",&t);if(t!=1){printf("错误\n\n");break;}else break; case 2:printf("***夜间直行通过路口***\n\n");tip(); scanf("%d",&t);if(t!=1){printf("错误\n");break;}else break; case 3:printf("***夜间在照明良好的条件下行驶***\n\n");tip(); scanf("%d",&t);if(t!=1){printf("错误\n");break;}else break; case 4:printf("***夜间同方向近距离跟车行驶***\n\n");tip(); scanf("%d",&t);if(t!=1){printf("错误\n");break;}else break; case 5:printf("***夜间与非机动车会车***\n\n");tip(); scanf("%d",&t);if(t!=1){printf("错误\n");break;}else break; case 6:printf("***夜间在窄路窄桥与非机动车会车***\n\n");tip(); scanf("%d",&t);if(t!=1){printf("错误\n");break;}else break; case 7:printf("***夜间在没有路灯且照明不良条件下行驶***\n\n");tip(); scanf("%d",&t);if(t!=2){printf("错误\n");break;}else break; case 8:printf("***您在低能见度道路上行驶***\n\n");tip(); scanf("%d",&t);if(t!=2){printf("错误\n");break;}else break; case 9:printf("***夜间通过拱桥,人行横道***\n\n");tip(); scanf("%d",&t);if(t!=3){printf("错误\n");break;}else break; case 10:printf("***夜间通过急弯,坡路,拱桥***\n\n");tip(); scanf("%d",&t);if(t!=3){printf("错误\n");break;}else break; case 11:printf("***夜间通过坡路拱桥***\n\n");tip(); scanf("%d",&t);if(t!=3){printf("错误\n");break;}else break; case 12:printf("***超越前方车辆***\n\n");tip(); scanf("%d",&t);if(t!=3){printf("错误\n");break;}else break; case 13:printf("***夜间没有交通信号灯控制的路口***\n\n");tip(); scanf("%d",&t);if(t!=3){printf("错误\n");break;}else break; case 14:printf("***您将要通过人行横道***\n\n");tip(); scanf("%d",&t);if(t!=3){printf("错误\n");break;}else break; case 15:printf("***夜间路左转弯,左转向灯***\n\n");tip(); scanf("%d",&t);if(t!=5){printf("错误\n");break;} else break; case 16:printf("***夜间路口右转弯,右转向灯***\n\n");tip(); scanf("%d",&t);if(t!=6){printf("错误\n");break;}else break; case 17:printf("***临时靠边停车***\n\n");tip(); scanf("%d",&t);if(t!=4){printf("错误\n");break;}else break; } } return 0; }

    运行结果如图

    大概就这样吧,也欢迎大家一起优化这个代码,因为夜间驾驶灯光考试,每道题有5秒钟时间限制超时算错,还可加入倒计时(不过iu我不会)第一次写博客儿而且还是什么都不会的c语言小白菜鸡一个,求轻喷,求指导。。。

    最新回复(0)