#include "stdafx.h"
#include "stdlib.h"
#include "time.h"
#include "iostream"
int _tmain(int argc, _TCHAR* argv[])
{ int a[4] = {},b[4];
int i,j,m,x=0,y=0,wrongtime=0;
srand((unsigned int)time(NULL));//随机数发生器的初始化函数 改变系统提供的种子值
for (i=0;i<=3;i++){
int temp = rand()%9 + 1;//生成随机数 可以自己取定范围,利用取余
a[i]=temp;
for(j=0;j<i;j++)
if(temp==a[j])
i--;
}
/* for(i=0;i<=3;i++)
printf("a[%d]=%d
",i,a[i]);*/
for(j=0;j<=2;j++)
for(i=0;i<=2-j;i++)
if(a[i]>a[i+1])
{m=a[i];
a[i]=a[i+1];
a[i+1]=m;}
/*for(i=0;i<=3;i++)
printf("%d",a[i]);*/
printf("请输入你所猜的四个数字:
");
while(x!=4){x=0,y=0;
for(j=0;j<=3;j++)
scanf("%d",&b[j]);
for(i=0;i<=3;i++)
if(a[i]==b[i])
x++;
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
{while(i!=j)
{if(a[i]==b[j])y++;
break;}
}
printf("%dA%dB
",x,y);
if(x==4)printf("恭喜您挑战成功!");
else wrongtime++;
if(wrongtime==7) {printf("很遗憾您挑战失败。");
break;}
}
system("pause");
return 0;
}
rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的"随机"。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列