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;

}?

==============================================

运行结果见附图。希望我的回答能帮到你。