【连载】科普之---随机数的应用(猜数字游戏的实现)
本帖最后由 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]