本文由职坐标整理并发布,内容来源网络,
本文主要向大家介绍了C/C++知识点之用C语言实现一款猜数字游戏,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
最经典的猜数字游戏的例子来展示条件结构在程序中的作用,今天看到另外一种猜数字的玩法,也挺有趣:
这个游戏由三个人一起玩,一个人做主持人,心中默想一个1到100之间的数字,然后由其他两个人轮流猜,每次猜测之后,主持人就说出猜测的这个数比他心中的数字是大还是小,然后另外一个人根据这个信息继续猜测,如此轮流,最后谁猜中就算谁输了。(算赢了也可以)
这是一个相互挖坑让对方跳的过程,特别是最后几步,猜测范围越来越小,真是步步惊心,稍不留意,就踩到对方挖的坑里去了。
============================================================================
代码如下:
*/ | |
#include<stdio.h> | |
#include<time.h> | |
#include<stdlib.h> | |
#include<stdbool.h> | |
#include<ctype.h> | |
intmain() | |
{ | |
srand(time(NULL));//随机数种子 | |
while(true) | |
{ | |
intmin=1; | |
intmax=100;//初始范围 | |
intcount=0;//猜测次数 | |
constinttarget=rand()%max+1;//产生随机数的目标数 | |
while(true) | |
{ | |
intguess=0; | |
printf("pleaseinputanumberbetween%dand%d\n",min,max); | |
fflush(stdin);//清空输入缓存,以便不影响后面输入的数。比如你逐个输入字符,他帮你缓冲掉你每输入一个字符后面所敲的回车键。否则回车也会被当成字符保存进去。scanf("%d",&guess);//获取猜测的数字 | |
++count; | |
if(guess<min||guess>max)//超出范围 | |
{ | |
printf("theinputisoutof%d-%d\n",min,max); | |
continue; | |
} | |
else | |
{ | |
if(target==guess)//猜中 | |
{ | |
printf("YOUWIN!\nyouhaveguessed%dtimesintotal.\n",count); | |
break; | |
} | |
elseif(target>guess)//目标比猜的数字大 | |
{ | |
min=guess; | |
printf("thetargetislargerthan%d\n",guess); | |
} | |
else//目标比猜的数字小 | |
{ | |
max=guess; | |
printf("thetargetislessthan%d\n",guess); | |
} | |
} | |
} | |
//本轮游戏结束,是否继续 | |
printf("Doyouwanttoplayagain?(Y-yes,N-no)\n"); | |
fflush(stdin); | |
charc='Y'; | |
scanf("%c",&c); | |
if(toupper(c)!='Y') | |
{ | |
break; | |
} | |
} | |
return0; | |
} |
正文完