问:需要随机出题,题目出现顺序要不一致
C语言需要学会如何随机抽取
(1)产生随机数 1~20.
(2)解决运气不好的问题1-18 极少出现19,20.
(3)及时反馈正确情况,记录同自定义特性
自定义特性:
(1) 大小写答案不区分
(2) 答错之后,要告诉我正确答案是什么
(3) 自己再增加一些人性化的功能
(比如:一开始什么都不输入,就只输出回车或者空格,就判断为错误不太好
思考:_5 5 5_是否算同一个答案? _A A A_是否算同一个答案?)
首先我们需要解决的是循环数问题,如何才能循环输出20个不重复的数呢?
我们采用rand函数
int a=1+rand()%20;
但是仅仅靠这一个只能保证循环输出,每次出现的数可能会有重复,那我们该如何解决这个问题呢???
我采用了数组加 goto 语句.
上代码
place:
a=1+rand()%20;
for(k=0;k<i;k++)
if(a==d[k])
goto place;//跳转至上一步,防止循环数相同.
d[i]=a;
printf("%d:\n",a);
通过将a的值存进数组,再利用数组比较是否出现了相同的数,如果相同直接跳转到循环数的位置,直到不重复为止.
后面我利用的是比较stupid的方法,每个数对应一个if 语句输出,由于代码太长就不给出来了,如有不足,欢迎大神指点.