猜数字游戏编程c语言怎么加循环(c语言猜数字小游戏代码)
c语言,编写一个猜数字游戏
源码如下:
/*?File:?guess.c?*/
#include?stdio.h??/*?standard?input??output?support?*/
#include?stdlib.h?/*?srand()?rand()?*/
#include?time.h???/*?time()?*/
/*?宏定义?*/
#define?NUMBER_LENGTH???5???/*?随机数长度?*/
#define?NUMBER_LIMIT????10??/*?随机数限制,?每一位0-9?*/
#define?INPUT_LENTH?????128?/*?输入缓冲区大小?*/
char?goal[NUMBER_LENGTH]????=?{0};??/*?保存随机数?*/
char?flag[NUMBER_LIMIT]?????=?{0};??/*?保存随机数标志,?保证不重复?*/
char?input[INPUT_LENTH]?????=?{0};??/*?保存输入?*/
/*?初始化用于保存数据的数组?*/
void?initData()
{
int?i?=?0;
while?(i??NUMBER_LENGTH)
goal[i++]?=?0;
i?=?0;
while?(i??NUMBER_LIMIT)
{
flag[i++]?=?0;
}
}
/*?初始化用于保存缓冲区的数组?*/
void?initBuffer()
{
int?i?=?0;
while?(i??INPUT_LENTH)
input[i++]?=?0;
}
/*?显示猜测结果?*/
void?display()
{
int?count?=?0;
int?i?=?0;
while?(i??NUMBER_LENGTH)
{
if?(input[i]?==?goal[i])
{
printf("%c",?'o');
count++;
}
else
{
printf("%c",?'x');
}
i++;
}
printf("\nRIGHT:?%d?bit(s)\n",?count);
if?(count?==?NUMBER_LENGTH)
{
printf("You?win!?The?number?is?%s.\n",?goal);
exit(0);
}
}
/*?生成随机数?*/
void?general()
{
/*?以时间作为时间种子保证生成的随机数真正具有随机性质?*/
srand((unsigned?int)time(NULL));
int?i?=?0;
while?(i??NUMBER_LENGTH)
{
char?tmp;
do
{
tmp?=?'0'?+?((i?!=?0)???(rand()?%?10)?:?(1?+?rand()?%?9));
}?while?(flag[tmp]?!=?0);
flag[tmp]?=?1;
goal[i++]?=?tmp;
}
}
/*?输入方法,用于猜测?*/
void?guess()
{
printf("Please?input?the?number?you?guessed:\n");
scanf("%s",?input);
display();
initBuffer();
}
/*?主函数,程序主框架?*/
int?main?(int?argc,?const?char?*?argv[])
{
initData();
initBuffer();
general();
while?(1)?guess();
return?0;
}
==============================================
运行结果见附图,希望我的回答能够对你有所帮助。
C语言猜数字游戏怎么编程,必须用循环
#include #include //#include unsigned char Num[4] = {0},getNum[4] = {0x20,0x20,0x20,0x20}; void help(void) { char i =0,j = 0; for(i =0;i
C++ 猜数字游戏代码循环,怎样实现猜错了继续猜 直到猜对为止
#include#include/*必须包含该库,因为使用了srand和rand函数*/#include/*必须包含该库,因为使用了time函数*/voidmain(){kaishi:intn;voidgame();printf("\n");printf("************************************\n");printf("欢迎进入猜数字游戏!\n");printf("\n");printf("1.开始游戏\n");printf("2.退出游戏\n");printf("************************************\n");if(scanf("%d",n)n==1)game();elseif(n==2){printf("************************************\n");printf("游戏结束!祝您愉快!\n");printf("\n");printf("再见!\n");printf("\n");printf("************************************\n");}gotokaishi;}voidgame(){inta;intrnd(void);voidnd1();voidnd2();voidnd3();voidnd4();printf("游戏规则:根据提示进行猜数字,直到猜中全部数字为止。\n\n");printf("注意:每个数字都是独立的。即:数字的顺序也必须猜对才算猜中。\n\n");printf("游戏难度分为:1、2、3、4\n\n");printf("请选择游戏的难度\n\n");scanf("%d",a);if(a==1)nd1();elseif(a==2)nd2();elseif(a==3)nd3();elseif(a==4)nd4();}intrnd(void){returnrand()*10/RAND_MAX;/*返回一个100以内的随机数*/}voidnd1(){intA,x,z;srand(time(0));/*用当前时间生成随机数种子*/A=rnd();printf("请输入一个数字\n");scanf("%d",x);for(z=1;1;z++){if((x=0)(x=10)(x=100)(x=1000)(x=9999)){if(A==a)i++;if(B==b)i++;if(C==c)i++;if(D==d)i++;if(i==0){printf("相差太远啦!四个数字没有一个一样呢~\n");i=0;}elseif(i==1){printf("不行哦~才一个数字一样呢~\n");i=0;}elseif(i==2){printf("还不错有两个数字一样了呢~\n");i=0;}elseif(i==3){printf("加油啊!只差一个啦!\n");i=0;}elseif(i==4)break;}elseprintf("输入有误哦~~是四个数字哦\n");scanf("%d",x);a=x/1000;b=x%1000/100;c=x%100/10;d=x%10/1;}printf("\n");if(z==1)printf("神人啊~~1次性猜中~~");elseif(z=10)printf("%d次就猜中。成绩相当不错哦~O(∩_∩)O~",z);elseif(z=16)printf("猜了%d次呢。也算不错哦",z);elseif(z=24)printf("猜了%d次还可以更好哦",z);elseif(z=32)printf("猜了%d次得努力加油呢",z);elseif(z=40)printf("猜了%d次很一般的成绩啊",z);elseprintf("-_-|||不会吧?一个个试都不要%d次诶",z);printf("\n\n\n");}自己写的,曾经花了好几个晚上,就是为了让它人性化一点游戏开始时可以设定难度,难度几就代表猜几个数字百度知道貌似有问题啊,打上来就全粘一起了,你自己把它“分开”一下罗(*^__^*)嘻嘻……望采纳

C语言用循环猜字游戏:使用随机数生成一个三位数作为谜底进行猜字游戏,每次猜的时候给出提示,
#includestdio.h
#includestdlib.h
#includetime.h
int main()
{
int a,b,c=10;
srand(time(NULL));
a=rand()%1000;
printf("系统已经给出了一个0-999的数,请输入一个数。\n");
while(1)
{ c--;
scanf("%d",b);
if(ba)
printf("猜大了,还剩%d次机会,请继续\n",c);
if(ba)
printf("猜小了,还剩%d次机会,请继续\n",c);
if(b==a)
{ printf("恭喜你答对了\n");
printf("系统给的数是:%d",a);
break;}
if(c==0)
{ printf("你已经没有机会了,请重新开始吧!\n");break;}
}
}
C语言题目 编程实现数字猜谜游戏!
一个函数用于生成一个随机数
再用一个函数进行三次循环
如果循环中输入的数字猜对了就返回1如果三次循环结束则返回0
主数字判断返回的结果如果是1则表示猜对否则表示猜错
然后询问是否继续进行猜数字游戏
下面是一个简单的代码
#include?stdio.h
#include?time.h
void?clean_input_buf(void)
{
????while(getchar()?!=?'\n');
}
int?make_num(int?num)
{
????srand(num);
????return?1+rand()%20;
}
int?guess_num(void)
{
????int?i=3;
????int?n;
????int?num;
????num=make_num(clock());
????while(i)
????{
????????printf("请输入一个你猜的数字:");
????????scanf("%d",n);
????????if(n?==?num)
????????????return?1;
????????clean_input_buf();
????????--i;
????}
????return?0;
}
int?main(int?argc,char?**argv)
{
????char?c;
????printf("猜数字游戏!\n游戏要猜测的数字为1-20,每个数字可以猜测3次!\n");
????while(1)
????{
????????if(guess_num()?==?1)
????????????printf("恭喜你,你猜中了!\n");
????????else
????????????printf("很遗憾,你猜错了!\n");
redo:
????????printf("还要继续游戏吗?继续输入Y否则输入N!\nY/N:");
????????c=getchar();
????????clean_input_buf();
????????if(c?==?'Y'?||?c?==?'y')
????????????continue;
????????else?if(c?==?'N'?||?c?==?'n')
????????????break;
????????else
????????{
????????????printf("输入错误,请重新输入!\n");
????????????goto?redo;
????????}
????}
????return?0;
}