c语言编程编的一个猜谜游戏
/*?文件:?guess.c?*/
#包含?& ltstdio.h & gt?/*?标准?输入?& amp?输出?支持?*/
#包含?& ltstdlib.h & gt?/*?srand()?兰德()?*/
#包含?& lttime.h & gt/*?时间()?*/
/*?宏定义?*/
#定义?NUMBER_LENGTH5/*?随机数长度?*/
#定义?NUMBER_LIMIT10?/*?随机数限制?每个数字0-9?*/
#定义?输入长度?128?/*?输入缓冲区大小?*/
夏尔?goal[NUMBER_LENGTH]=?{0};?/*?保存随机数?*/
夏尔?flag[数字限制]?=?{0};?/*?保存随机数标志。保证不再重复?*/
夏尔?input[INPUT_LENTH]?=?{0};?/*?保存输入?*/
/*?初始化用于保存数据的数组?*/
作废?initData()
{
int?我?=?0;
什么时候?(我?& lt?数量_长度)
目标[i++]?=?0;
我?=?0;
什么时候?(我?& lt?数量_限制)
{
flag[i++]?=?0;
}
}
/*?初始化用于保存缓冲区的数组?*/
作废?初始化缓冲区()
{
int?我?=?0;
什么时候?(我?& lt?输入长度)
输入[i++]?=?0;
}
/*?显示猜测结果?*/
作废?显示()
{
int?数数?=?0;
int?我?=?0;
什么时候?(我?& lt?数量_长度)
{
如果?(输入[i]?==?目标[i])
{
printf("%c ",o’);
count++;
}
其他
{
printf("%c ",x’);
}
i++;
}
printf("\nRIGHT:%d?位\n ",计数);
如果?(算吗?==?数量_长度)
{
printf("你?赢了!?那个?号码?是吗?%s,\n ",目标);
退出(0);
}
}
/*?生成随机数?*/
作废?常规()
{
/*?以时间为时间种子,保证生成的随机数是真正随机的?*/
srand((未签名?int)time(NULL));
int?我?=?0;
什么时候?(我?& lt?数量_长度)
{
夏尔?tmp
做
{
tmp?=?'0'?+?((我?!=?0)(rand()?%?10)?:?(1?+?兰德()?%?9));
}?什么时候?(flag[tmp]?!=?0);
flag[tmp]?=?1;
目标[i++]?=?tmp
}
}
/*?猜字输入法?*/
作废?猜测()
{
printf("拜托?输入?那个?号码?你呢。猜到了:\ n”);
scanf("%s ",输入);
显示();
init buffer();
}
/*?主要功能,程序主框架?*/
int?主要?(int?argc,?const?夏尔?*?argv[])
{
initData();
init buffer();
general();
什么时候?(1)?guess();
回归?0;
}?
==============================================
运行结果见附图。希望我的回答能帮到你。