怎样生成不重复的随机数?
我是C语言的初学者,以下是猜数字游戏的代码,但是这样可能会生成重复的随机数,请问应该怎么修改呢?望各位同僚指教。#include"stdafx.h"#include"st...
我是C语言的初学者,以下是猜数字游戏的代码,但是这样可能会生成重复的随机数,请问应该怎么修改呢?望各位同僚指教。
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
#include <stdlib.h>
#include <time.h>
void main( void )
{
int i,k;
int a[4];
int N=0,M=0;
srand( (unsigned)time( NULL ) );
for( i = 0; i <=3;i++ )
{
a[i]=rand()%10;
printf( " %d\n",a[i]);
}
printf("qingshuru:\n");
int b[4];
for(k=0;k<=3;k++)
{
scanf("%d",&b[k]);
}
for(i=0;i<=3;i++)
{
for(k=0;k<=3;k++)
if(a[i]==b[k])
{
if(i==k)
N++;
//break;
if(i!=k)
M++;
//break;
}
}
printf("%d\n%d\n",N,M);
} 展开
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
#include <stdlib.h>
#include <time.h>
void main( void )
{
int i,k;
int a[4];
int N=0,M=0;
srand( (unsigned)time( NULL ) );
for( i = 0; i <=3;i++ )
{
a[i]=rand()%10;
printf( " %d\n",a[i]);
}
printf("qingshuru:\n");
int b[4];
for(k=0;k<=3;k++)
{
scanf("%d",&b[k]);
}
for(i=0;i<=3;i++)
{
for(k=0;k<=3;k++)
if(a[i]==b[k])
{
if(i==k)
N++;
//break;
if(i!=k)
M++;
//break;
}
}
printf("%d\n%d\n",N,M);
} 展开
1个回答
展开全部
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
#include <stdlib.h>
#include <time.h>
void main( void )
{
int i,k,s;
int a[4];
int N=0,M=0;
srand( (unsigned)time( NULL ) );
for( i = 0; i <=3;i++ )
{
//下面是我改的//
a:a[i]=rand()%10;
for(s=0;s<i;s++)
{
if(a[s]==a[i])
goto a;
}
//END//
printf( " %d\n",a[i]);
}
printf("qingshuru:\n");
int b[4];
for(k=0;k<=3;k++)
{
scanf("%d",&b[k]);
}
for(i=0;i<=3;i++)
{
for(k=0;k<=3;k++)
if(a[i]==b[k])
{
if(i==k)
N++;
//break;
if(i!=k)
M++;
//break;
}
}
printf("%d\n%d\n",N,M);
}
不好意思啊
用了强制转换
投机去巧了
#include "stdio.h"
#include "math.h"
#include <stdlib.h>
#include <time.h>
void main( void )
{
int i,k,s;
int a[4];
int N=0,M=0;
srand( (unsigned)time( NULL ) );
for( i = 0; i <=3;i++ )
{
//下面是我改的//
a:a[i]=rand()%10;
for(s=0;s<i;s++)
{
if(a[s]==a[i])
goto a;
}
//END//
printf( " %d\n",a[i]);
}
printf("qingshuru:\n");
int b[4];
for(k=0;k<=3;k++)
{
scanf("%d",&b[k]);
}
for(i=0;i<=3;i++)
{
for(k=0;k<=3;k++)
if(a[i]==b[k])
{
if(i==k)
N++;
//break;
if(i!=k)
M++;
//break;
}
}
printf("%d\n%d\n",N,M);
}
不好意思啊
用了强制转换
投机去巧了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询