#include "stdafx.h"
#include "process.h"
#include "time.h"//引入时间头文件 利用时间作为随机数种子
#include
using namespace std;
bool testRepetition(int iArr[], int newNum, int ilength);//定义函数 判断新产生的随机数是否与前面有重复值
int main(int argc, char* argv[])
{
int iNum[4] = { 0 };//定义整形数组 初始化各项为0
srand((unsigned)time(NULL));//出初始化随机数种子
for (int i = 0; i < 4; i++)
{
int iTem = rand() % 10;//产生第一个随机数
int iLen = sizeof(iNum) / sizeof(iNum[0]); //获取数组长度
while (!testRepetition(iNum, iTem, iLen)) //直到产生与之前不重复的随机数 赋值给数组项
{
iTem = rand() % 10;//产生随机数
}
iNum[i] = iTem;//产生随机数并赋值给数组项
cout << iNum[i] << "\t" << endl;//输出数组项数据
}
system("pause");
return 0;
}
bool testRepetition(int iArr[], int newNum, int ilength)
{
//sizeof(iArr) / sizeof(iArr[0]) 无法获取到数组的长度 数组参数传递的是指针
for (int i = 0; i < ilength; i++)
{
//printf("\n**************%d,%d,%d,%d****************\n", sizeof(iArr) / sizeof(iArr[0]),i, iArr[i], newNum);
if (iArr[i] == newNum){ return false; }
}
return true;
}
#include
#include
#include
int main()
{
int a[4];
int i,j;
srand(time(NULL));
for( i=0; i<4; i++ )
{
int x=rand()%10;
for( j=0;j {
if ( a[j]==x )
break;
}
if ( j >= i ) //没重复
a[i]=x;
else
i--;
}
for( i=0; i<4; i++ ) //输出
printf("%d ", a[i] );
return 0;
}
#include
#include
#include
int rep(int *a, int n,int x){
int i=0;
while(i
int main(){
int a[4];
int i,d;
srand(time(0));
a[0]=rand()%10;
for(i=1; i<4; i++){
d=rand()%10;
while(rep(a,i,d))
d=rand()%10;
a[i]=d;
}
for(i=0; i<4; i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
#include
#include
#include
int main()
{
int a[4], i, n = 0;
srand((unsigned int)time(NULL));
while (1){
a[n] = rand() % 10;
for (i = 0; i < n; ++i){
if (a[i] == a[n])break;
}
if (i >= n){
n++;
if (n == 4)break;
}
}
for (i = 0; i < n; ++i){
printf ("%3d", a[i]);
}
printf ("\n");
return 0;
}
1、用rand()%10 产生从0 到 9的数据。
2、产生第一个赋值给a[0]
3、产生第二个,比较是否和第一个一样,如果不一样,则赋值给a[1],如果一样则 重新产生,再比较
4、以此类推