简单的猜数游戏,为什么执行完一次操作后程序会退出,而没有判断是否再次猜数?迷惑中,请各位大虾指教。

#include<stdio.h>#include<stdlib.h>#include<time.h>#defineMAX_NUM100voidinitialize_nu... #include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MAX_NUM 100

void initialize_number_generator(void);
void choose_new_selected_number(void);
void read_guess_number(void);

int select_number;
char command;

int main()
{
initialize_number_generator();
do
{
choose_new_selected_number();
printf("new number has been selected.");
printf("\n");

read_guess_number();
printf("do you want to play again?(Y/N): ");
scanf("%c",&command);
printf("\n");
}while(command=='y');
return 0;
}

//初始化随机数生成器
void initialize_number_generator(void)
{
srand((unsigned) time(NULL));
}

//选择随机数(产生1-100的数)
void choose_new_selected_number(void)
{
select_number = rand() % MAX_NUM +1 ;
}

//读取并判断所猜的数,并统计猜对数字所需要的次数
void read_guess_number(void)
{
int guess_number;
int guess_time=0;

for(;;)
{
printf("enter your guess number: ");
scanf("%d",&guess_number);

guess_time++;

if(guess_number==select_number)
{
printf("oh,you get the true number!\nyou won after trying %d times\n",guess_time);
break;
}
else
{
if(guess_number < select_number)
printf("the number is too low.\n");
else
printf("the number is too high.\n");
}
}
}
展开
 我来答
Jseven_jy
2011-12-05 · TA获得超过8123个赞
知道大有可为答主
回答量:2499
采纳率:100%
帮助的人:1349万
展开全部
我运行你的代码,确实有你说的这个问题,

解决这个问题的方法是把下面这段代码
read_guess_number();
printf("do you want to play again?(Y/N): ");
scanf("%c",&command);
printf("\n");
改成
read_guess_number();
printf("do you want to play again?(Y/N): ");
getchar();
scanf("%c",&command);
printf("\n");

就是在中间加上一句getchar();
这是因为在猜数字的过程中,我们每输一次数字,就会回车一下,所以加上getchar();用于接收最后一次猜对时候的回车,
如果不加的话command的值就是回车符,循环结束了。。。。

希望能帮到你。。仍有问题可以继续追问。。。。或者HI我。。。
追问
您是说在第一次猜数中,相当于输入了两个字符吗?
追答
第一次猜数的时候,每次我们输入我们猜的数字,就会按回车键。。。如果不加getchar()来接收这个回车键。。。。
command的值就会是换行符,
你可以在read_guess_number();
printf("do you want to play again?(Y/N): ");
scanf("%c",&command);
printf("\n");
后面加一句
pintf("%d",command);
结果是10
换行符的ASCII编码就是10
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式