十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
可以将生成的随机数放入数组中,每次遍历数组,有相同的重新生成随机数。知道生成4个即退出循环。
10多年的洛浦网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整洛浦建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“洛浦网站设计”,“洛浦网站推广”以来,每个客户项目都认真落实执行。
#include stdio.h
#include stdlib.h
#include time.h
int main()
{
int num[4], cnt = 0, n;
srand(clock()); // 设置随机数种子
while (cnt 4)
{
n = rand() % 4; // 生成4以内随机数,这样更利于测试
for (int i = 0; i cnt; i++)
if (num[i] == n) // 遍历数组,有相同的重新生成随机数
continue;
num[cnt++] = n;
}
for (int i = 0; i cnt; i++) // 打印随机数数组
printf("%d ", num[i]);
return 0;
}
#includeiostream
#includetime.h
#includestdlib.h
using namespace std;
int main()
{
int i,j;
int n[10]; //要产生10个随机数
int n1=100; //100个随机数
int n2=51; //从50开始
// n[0]=rand()%n1+n2;//产生50-150的随机数
srand((unsigned)time(NULL));
for(i=0;i10;i++)
{
n[i]=rand()%n1+n2;
while(1) //判断是否重复
{
for(j=0;ji;j++)
{
if(n[i]==n[j])
{
n[i]=rand()%n1+n2;
j=0;
break;
}
}
if(j==i)//新随机数与前面几个随机数都不重复
break;
}
printf("%d\n",n[i]);//产生从50-150的随机数
}
return 0;
}
//你发的程序少太多东西也不清楚你要表达什么意思,唯一理解的是你提出的要求,我编了一个程序可以产生不重复随机数但是不知道有没有系统函数可以这样做,把n1改成10很明显可以看见程序是符合要求的
其实只要做一次种,然后再调用rand()就能产生不同的结果了,不用每次调用rand()之前都用srand()做种的
也就是说你那个程序可以改为
srand(time(0));
for(a=0; a200; a++)
{ /* Two adjacent values of random numbers must be different */
R=rand()/(RAND_MAX+1.0);
b=int(R*num) + 1;
}
randomize()和random()这两个函数,在c语言的标准库里面,早就不用了。
现在,要用srand()和rand()来设置种子和产生随机数了
现在这样改:
#include
stdio.h
#include
stdlib.h
//#include
main.h
////////有这样的头文件么?
#include
time.h
int
main()
{
//randomize();
srand((unsigned)time(null));//用当前时间,设置种子
//printf("
%d",random(100));
printf("
%d",rand()%100);
//生成随机数
return
0;
}
下面是用C产生0-9的随机数,rand()函数产生的是伪随机数,反复调用函数rand所产生的一系列数似乎是随机的,但每次执行程序所产生的序列则是重复的。需要用srand()函数每次给不一样的种子
#include
stdlib.h
//标准工具库,要用到其中的rand()
#include
stdio.h
#includeconio.h
#include
time.h
//时间库,要用到里面的时间来做随机数的种子
int
main(void)
{
int
i;
srand(time(NULL));
printf("Ten
random
numbers
from
to
9\n\n");
for(i=0;
i10;
i++)
printf("%d\n",
rand()%10);
getch();
return
0;
}