从1-20随机生成8个不同的随机数的c语言程序怎么写?

如题所述

#include <stdlib.h>
#include <time.h>
void main()
{
int i,n;
srand((unsigned)time(NULL));
for(i=0;i<8;i++)
{
n=rand()%20+1;
printf("%d ",n);
}
}

追问

你这个会生成重复的。

追答

你真的执行了吗。
srand((unsigned)time(NULL));
就是每次提供不同的种子。
如果没有srand,才会出现伪随机数。

追问

执行了

追答

嗯,刚看到。8个不同的随机数。重新写一下:

#include <stdlib.h>
#include <time.h>
void main()
{
int i=0,j,a[8];
srand((unsigned)time(NULL));
for(i=0;i<8;i++)
{
a[i]=rand()%20+1;
if(i>0) 
for(j=0;j<i;j++)
if(a[i]==a[j]) i--;
}
for(i=0;i<8;i++)
printf("%d ",a[i]);
}

追问

那用这个代码如何创建窗口应用程序

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-20
如果是随机生成n个1-n不重复的随机数,则可参阅洗牌程序代码。如果生成少n个的1-n的不重复的随机数,则需要将前面生成的数据保存到数组中,然后,再生成数据时,与前面生成的数据进行比较,如果有相同,则丢弃本次数据,重新生成,依此循环追问

我需要代码。

相似回答