⑴ c语言产生不重复的随机数
#include<iostream.h>
#include<cstdlib>
#include<ctime>
voidmain()
{
inti,j,a[10];
srand(time(0));
for(i=0;i<正盯10;i++)
{
a[i]=rand()%10;
intflag=1;
while(flag==1)//你的这里可能还会产生重此改复的数,这里确保产生的数不再重复,只要有重复的就在随机新的数。
{
for(j=0;j<i;j++)
if(a[i]==a[j])
break;
if(j<i)
a[i]=rand()%10;
if(j==i)
flag=0;
};
}
for(i=0;i<10;i++)
cout<<a[i]<<endl;
}
这样就可以了,参考下哈,满意请采举扒和纳。
⑵ 如何用C语言产生不重复的0到9之间的随机数
下缺没面是用C产生0-9的随机数,rand()函数产生培谈的是伪随机数,反复调用函数rand所产生的一系列数似乎是随机的,但每次执行程序所产生配扮碰的序列则是重复的。需要用srand()函数每次给不一样的种子
#include
<stdlib.h>
//标准工具库,要用到其中的rand()
#include
<stdio.h>
#include<conio.h>
#include
<time.h>
//时间库,要用到里面的时间来做随机数的种子
int
main(void)
{
int
i;
srand(time(NULL));
printf("Ten
random
numbers
from
0
to
9\n\n");
for(i=0;
i<10;
i++)
printf("%d\n",
rand()%10);
getch();
return
0;
}
⑶ c语言生成10个不重复的随机整数,并输出
#include<stdio.h>
#include<time.h>
#defineelemTypeint/*元素类型*/
#defineLEN100/*数组长度上限*/
/*生成n项min~max范围的随机数并存入数组randArr*/
voidrandomArray(elemTyperandArr[LEN],intn,elemTypemin,elemTypemax){
inti;
srand((unsigned)time(NULL));/*用时间做种,每次产生随机数不一样*/
for(i=0;i<n;i++)
randArr[i]=rand(NULL)%(max-min+1)+min;/*产生min~max的随机数*/
}
/*打印数组*/
voidprintArr(elemTypearr[],intlen){
inti;
for(i=0;i<len;i++)
printf("%d ",arr[i]);
putchar(' ');
}
intmain(void){
elemTypearr[LEN];
intlen=10;/*10个随机数*/
randomArray(arr,len,1,50);/*随机生成数组内容*/
printArr(arr,len);
putchar(' ');
getch();/*屏幕暂留*/
return0;
}
运行结果
⑷ c语言如何产生随机不重复的数,我不重复不知道怎么写。怎样不重复
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{inta[10],i,j,k;
srand(time(NULL));
for(i=0;i<10;i++){//采集10个随机数
a[i]=rand()%90+10;//随机数赋值
k=0;//重复个数清零
for(j=0;j<i;j++)//计算重复的个数
if(a[i]==a[j])k++;
if(k!=0)i--;//重复个数不为0,就是有重复的
}//重新产生这个随机数
for(i=0;i<10;i++)
printf("%4d",a[i]);
}
如图所示,rand产生不了不重复的随机数,所以方法就是把产生的重复的去掉。我这里举个例子,按照这个思路,插入到你的程序里就行了。
望采纳。。。。。。
⑸ C语言结构编程中怎样能产生不重复的随机数
//让数不重复,而且每个数都有不好弄,但是如果是生成选手比赛顺序,我这种做法就可以了。你把选手的编号放在一个数组里面,然后从数组的第一个开始,把生成的随即数当成要交换的下标,随即交换后就打乱顺序了。
虽然产生的随机数可能一样,但是这样打乱顺序并不会把选手编号改变了。
例如,
int
tmp,num;
a[10]={1,2,3,4,5,6,7,8,9,10};
srand(time(NULL));
for(int
i=0;i<10;i++)
{
num=rand()%10;
tmp=a[i];
a[i]=a[num];
a[num]=tmp;
}
⑹ C语言 怎么产生没有重复的一组随机数
随机数是有几率产生重复的数,你可以把新产生的跟前面的每一个比较如果有相等的就重新产生。
⑺ c语言生成1 - 100的不重复随机数
c语言生成1 - 100的不重复随机数?根据你的要求我已经将代码实现如下
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main(){
int a[10];
srand((unsigned)time(NULL));
for(int i=0;i<10;i++){
A: a[i]=rand()%99+1;
for(int j=0;j<i;j++){
a[i]=rand()%99+1;
if(a[i]==a[j])goto A;
else break;
}
}
for(int i=0;i<10;i++)
printf("%d ",a[i]);
}
⑻ C语言如何从0-9产生4个不重复的随机数
利用空间换时间的策略郑衡,用flag数组保证了数字不会重复,避免每次产生的随机数都要遍历一遍数组以避免重复的问题。
而且通过时间作为种哪丛哪子,避免每次的随机数都一样!
#include<stdio.h>
#include<stdlib.h>
#include<time.h>李码
void main()
{
int aim[4],flag[10]={0};
srand(time(NULL));
for(int i=0;i<4;i++)
{
int temp = rand()%10;
if(flag[temp]==0)
{
aim[i]=temp;
flag[temp]=1;
}
else
i--;
}
for(i=0;i<4;i++)
printf("%d ",aim[i]);
printf("\n");
getchar();
}
printf
⑼ C语言程序产生不重复随机数
#include<iostream>
#include<time.h>
#include<stdlib.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;i<10;i++)
{
n[i]=rand()%n1+n2;
while(1) //判断是否重复卖简弯
{
for(j=0;j<i;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很明显可以看见程序是符合要求的
⑽ C语言如何用rand函数产生4个不重复的随机数啊
可以将生成的随机数放入数组中,每次遍历数组,有相同的重新生成随机数。知道生成4个即退出循环。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
intnum[4],cnt=0,n;
srand(clock());//设置随机数种子
while(cnt<4)
{
n=rand()%4;//生成4以内随机数,这样更利于测试
for(inti=0;i<cnt;i++)
if(num[i]==n)//遍历数组,有相同的重新生成随机数
continue;
num[cnt++]=n;
}
for(inti=0;i<cnt;i++)//打印随机数数组
printf("%d",num[i]);
return0;
}