c语言如何产生随机不重复的数,我不重复不知道怎么写。怎样不重复
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言如何产生随机不重复的数,我不重复不知道怎么写。怎样不重复相关的知识,希望对你有一定的参考价值。
c语言如何产生随机不重复的数,我不重复不知道怎么写。怎样不重复#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 50
main()
int a[50],i,n=0,m,j;
srand(time(NULL));
for(i=0;i<N;i++)
a[i]=rand()%90+10;
for(i=0;i<N-1;i++)
for(j=0;j<N-i-1;j++)
if(a[j]<a[j+1])
m=a[j];a[j]=a[j+1];a[j+1]=m;
for(i=0;i<N;i++)
printf("%d ",a[i]);
if((i+1)%10==0)
printf("\n");
#include<stdlib.h>
#include<time.h>
main()
int a[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产生不了不重复的随机数,所以方法就是把产生的重复的去掉。我这里举个例子,按照这个思路,插入到你的程序里就行了。
望采纳。。。。。。
参考技术A int count=0; //已成功生成的随机数计数int n;
int i;
while(count<50)
int find=0; //标识变量:如为1表示已有这个随机数
n=rand()%90+10; //获得随机数
for(i=0;i<count;i++) //检索已有随机数数组中是否存在该数
if(a[i]==n)
find=1; //如果存在该数,则改变标识变量为1
break;
if(find==0) //如果find==0,表示已生成随机数数组中没有该值
a[count++]=n; //该随机数存入数组中,并使count计数+1
JAVA中怎么随机产生一个不重复的四位数
//题主估计想问产生一个四个不同数字的四位数////首先千位不为0
String number=String.valueOf((int)(Math.random()*9+1));
//再产生其它三位数
for(int i=0;i<=2;)
String newnumber=String.valueOf((int)(Math.random()*9));
if(!number.contains(newnumber))
number=number+newnumber;
i++;
System.out.println(number); 参考技术A (int)((Math.random()*9+1)*1000)随机四位数
类似的后面1000的位数增加到几位就是随机几位数 参考技术B (int)((Math.random()*9+1)*1000)
以上是关于c语言如何产生随机不重复的数,我不重复不知道怎么写。怎样不重复的主要内容,如果未能解决你的问题,请参考以下文章