制作一个答题系统,随机出现二十道题.

问:需要随机出题,题目出现顺序要不一致
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 语句输出,由于代码太长就不给出来了,如有不足,欢迎大神指点.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值