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<stdio.h>
#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语言如何产生随机不重复的数,我不重复不知道怎么写。怎样不重复的主要内容,如果未能解决你的问题,请参考以下文章

JS生成不重复的随机数组的简单实例

C# 如何生成不重复的1-100随机数。

在vb中怎么随机产生不重复的数字

C语言 随机产生10个手机号,不能重复。输入英文名后绑定手机号,一个名字一个手机号

.net 下用C#产生一个永不重复10位随机数

PHP生成不重复随机数的几种方法