#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
void main()
{
int array[7];
int temp;
char ch;
do
{
srand(time(0));
for(int i=0;i<7;i++)
{
temp=rand()%35+1;
for(int j=0;j<i;j++)
{
if(temp==array[j])
{
j=i+13;
}
}
if(j>i+6)
{
i--;
continue;
}
else
{
array[i]=temp;
}
}
for(int i=0;i<7;i++)
{
cout<<array[i]<<" ";
}
cout<<endl;
cout<<"是否再次生成(y/n)";
cin>>ch;
}while(ch=='y');
cout<<endl;
}
#include<stdlib.h>
#include<time.h>
using namespace std;
void main()
{
int array[7];
int temp;
char ch;
do
{
srand(time(0));
for(int i=0;i<7;i++)
{
temp=rand()%35+1;
for(int j=0;j<i;j++)
{
if(temp==array[j])
{
j=i+13;
}
}
if(j>i+6)
{
i--;
continue;
}
else
{
array[i]=temp;
}
}
for(int i=0;i<7;i++)
{
cout<<array[i]<<" ";
}
cout<<endl;
cout<<"是否再次生成(y/n)";
cin>>ch;
}while(ch=='y');
cout<<endl;
}
下面这种在控制太可以不停的变换,模拟了抽奖的效果
#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;
void main()
{
int r1,r2,r3,r4,r5,r6,r7;
srand(time(0));
printf("c产生的随即数为: ");
while(1)
{
r1=rand()%35+1;
do
{
r2=rand()%35+1;
}while(r2==r1);
do
{
r3=rand()%35+1;
}while(r3==r1 && r3==r2);
do
{
r4=rand()%35+1;
}while(r4==r1 && r4==r2 && r4==r3);
do
{
r5=rand()%35+1;
}while(r5==r1 && r5==r2 && r5==r3 && r5==r4);
do
{
r6=rand()%35+1;
}while(r6==r1 && r6==r2 && r6==r3 && r6==r4 && r6==r5);
do
{
r7=rand()%35+1;
}while(r7==r1 && r7==r2 && r7==r3 && r7==r4 && r7==r5 && r7==r6);
printf("%2d-%2d-%2d-%2d-%2d-%2d-%2d ",r1,r2,r3,r4,r5,r6,r7);
//降低文字改变速度
for(int i=0;i<99999999;i++)
{}
}
}
#include<time.h>
#include<stdlib.h>
using namespace std;
void main()
{
int r1,r2,r3,r4,r5,r6,r7;
srand(time(0));
printf("c产生的随即数为: ");
while(1)
{
r1=rand()%35+1;
do
{
r2=rand()%35+1;
}while(r2==r1);
do
{
r3=rand()%35+1;
}while(r3==r1 && r3==r2);
do
{
r4=rand()%35+1;
}while(r4==r1 && r4==r2 && r4==r3);
do
{
r5=rand()%35+1;
}while(r5==r1 && r5==r2 && r5==r3 && r5==r4);
do
{
r6=rand()%35+1;
}while(r6==r1 && r6==r2 && r6==r3 && r6==r4 && r6==r5);
do
{
r7=rand()%35+1;
}while(r7==r1 && r7==r2 && r7==r3 && r7==r4 && r7==r5 && r7==r6);
printf("%2d-%2d-%2d-%2d-%2d-%2d-%2d ",r1,r2,r3,r4,r5,r6,r7);
//降低文字改变速度
for(int i=0;i<99999999;i++)
{}
}
}
本文介绍使用C++实现随机数生成的方法,并通过一个抽奖程序实例展示如何确保生成的随机数不重复。该程序利用了srand与rand函数,并通过循环检查避免重复数字的出现。

890

被折叠的 条评论
为什么被折叠?



