现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

如何用c++产生1-10十个不同的随机数

2013-07-13 19:46 工业·编程 ⁄ 共 776字 ⁄ 字号 暂无评论

你要不同的10个数。你可以设个数组存储已经产生的数。比如已经产生了第一个数5,你用rand()生成了又一个5时,比较一下以产生的数发现是5,就跳过,看下一个。总能产生10个不同的随机数。

算法就是,每生成一个数就与原来生成的数比较,如果有相等的就就重新生成一个数,这样就能保证10个数都不相等了。下面这个程序生成数的范围是0到100:

#include <iostream>

#include <stdlib.h>                        //rand(),srand()函数在这个头文件中
#include <time.h>                         //time(0)在这个头文件中
#define MAX 100
using namespace std;
void main()

    int arr[10]; 
    int i=0;
    bool ret=false; 
    srand((unsigned)time(NULL)); 
while(1)
{  
    arr[i]=rand()%MAX+1; 
 
    for(int j=0;j<i;j++)
       
    {     
        if(arr[j]==arr[i])
           
        ret=true;      
    }  
    if(!ret)   
    {     
     i++;    
     ret=false;  
}  
if(i==10)
{    
     break;  
 
}
 

while(--i)
{    cout<<arr[i]<<" ";  }
cout<<arr[0]<<endl;
}

注:产生10个100以内的数字

  for(i=0; i<10; i++)
       printf("%d\n", rand() % 100);
   return 0;
}

给我留言

留言无头像?