目的:
写一个随机抽取20个选择题的小程序;
需达成的要求:
1.产生随机数并不重复;
2.可从题库取题目;
3.可正常运行;
如何产生随机数并不重复:
产生一个随机数简单,让它不重复就不简单了,让我们先看代码
srand((unsigned)time(NULL));
int a[20],i,m;
for(i=0;i<20;i++)
{
a[i]=rand()%20+1;
for(m=0;m<i;m++)
{
if(a[m]==a[i])
i--;
}
}
这是一个产生1到20的随机数生成代码,这里我采用的是用数组来存储随机生成的数字,第二个for循环是解决不重复问题的,核心是这个if的判断,m从0到i之间是为了检验新生成的数是否和前面的数重复,注意,m一定不等于i,不然这个逻辑就是死的,数组中的第i个数一定等于i个数的。然后巧妙使用i--,虽然前面已经生成的第i个数,但是i--的使用,使下一次生成的值赋给了第i个数,覆盖了原先的值,所以能保证生成的数不重复。
更多生成随机数资料请看https://blog.csdn