题目:
选择题数据:20道题
(1)题干;
(2)正确答案(A/B/C/D);
(3)候选项(A/B/C/D a/b/c/d);
题目要求:1.需要随机出题,题目出现顺序要不一致。
2.及时反馈正确情况,记录同学的准确率。
人性化特证:
(1) 大小写答案不区分。
(2) 答错之后,要告诉我正确答案是什么。
主函数:
#include <stdio.h>#include<stdlib.h>#include<stdfix.h>#include<time.h>#include<ctype.h>char right;//定义全局变量,作为每道题答案int main(){srand((unsignedint)time(NULL));//随机抽取函数intk,n=0,j,a[20];charanswer;printf("欢迎小可爱进入程序\n");//人性化提醒for(k=0;k<20;k++){intret1=rand()%20+1;for(j=0;j<k;j++){if(a[j]==ret1){k--;j=-1;break;}}if(j==-1)continue;//防止抽取到重复题目printf("第%d题\n",k+1);opt(ret1);//从题库中随机抽取printf("请输入你的选项:\n");getchar();//缓冲读取一个字符,即答题者的答案scanf("%c",&answer);//答题者输入自己答案if(answer==right||answer==right+32)//不区分答题者大小写之分{printf("YOUAREGOOD!\n");n++;//正确题目相加}elseprintf("DON'TGIVEUP!正确答案是%c\n",right);//激励+告诉正确答案}printf("你的正确率为%d%%!",n/20);//最后输出正确率}return0;}
程序能够正常编译运行,但是在答题过程中当正确答题时最后正确率结果还是为0!请求哪位大佬帮我解决这个bug,Thanks♪(・ω・)ノ。
(3) 自己再增加一些人性化的功能。
(比如:一开始什么都不输入,就只输出回车或者空格,就判断为错误不太好
思考:_5 5 5_是否算同一个答案? _A A A_是否算同一个答案?)
当此程序先输入两个空格再输入答案时,该题在判断此输入答案是否正确后陆续输出两个题目。
当此程序输入答案-空格-答案和输入答案+两个空格时,也出现以上问题。
请求大佬帮忙解决这个问题,Thanks♪(・ω・)ノ!
如果觉得《C语言编写随机抽取单选题系统》对你有帮助,请点赞、收藏,并留下你的观点哦!