【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 wangzheng3056 于 2013-7-30 15:09 编辑上一篇:科普之-------随机数rand()的用法
上一贴我讲述了如何生成伪随机数,今天我们将难度升级,讲述随机数的应用---猜数字游戏的实现(大家自行了解游戏规则)。
程序的流程是:
1.生成一个四位数要求每一位都不同,放在数组的四个元组中
2.要求用户输入四位数
3.程序将用户输入的四位数分离,放在数组的四个元组中
4.将两个数组进行对比,记录对比结果
5.输出结果
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int judge(int *a,int *b)
{
int i,j;
int count_A,count_B;
count_A = count_B = 0;
for(i = 0;i<4 ;i++ )
{
if(a == b) count_A++;
}
if(count_A == 4) {printf("%dA%dB\n",count_A,count_B);return 1;}
for(i = 0; i < 4;i ++)
{
for(j = 0;j < 4;j ++)
{
if(a == b) {count_B++;j = 4;}
}
}
printf("%dA%dB\n",count_A,count_B);
return 0;
}
void main()//c语言版猜数字游戏
{
int r_num;
int input_num;
srand(time(0));
int j,i = 0,temp1,temp2 = 0;
/*********************生成四个随机数***********************/
while(i<4)
{
if(i == 0) {r_num = rand()%10;i++;}
else
{
temp1 = rand()%10;
for(j=0;j<i;j++)
{
if(temp1 == r_num) temp2++;
}
if(temp2 == 0)
{
r_num = temp1;
temp2 = 0;
i ++;
}
else
{
temp2 = 0;
continue;
}
}
}
for(i = 0;i<4;i++)
printf("%d\n",r_num);
/************************猜数字游戏核心部分*********************/
for(;;)
{
scanf("%d",&j);
input_num = j/1000;
input_num = j%10;
input_num = (j - input_num*1000)/100;
input_num = (j - input_num*1000 - input_num*100)/10;
/********这个地方缺一个函数判断输入的四个数是否一样,由大家自己实现********/
if(judge(input_num,r_num)==1) break;
else
continue;
}
} 今天果然及时更新了!威武~~~ 我想知道大家想用随机数做什么, 大家给点意见~!!!!好让我连载下去 如果与统计学挂钩,随机数很重要 确实。如果向数据挖掘方面走。我觉得更好。
页:
[1]