这个猜数游戏和在之前的几节的猜数游戏不太一样,主要是在输出以及计算次数的方面。
首先是人输入要猜的这个数是什么,然后再输入要在几次内猜出这个数。然后进行猜数,根据猜的次数和大小分别输出固定的语句,注意要输入的是100以内的正整数,具体的输出如下:
大了:Too big;小了:Too small,一次就猜对:Bingo,3次以内猜对:Lucky you.
超过3次猜对但是在用户输入的猜对的次数中,输出:Good Guess
如果超过最大限度的次数没有猜对,或者用户输入一个负数,则输出Game Over,表示结束。
我们来代码中具体看一下:
#include<stdio.h>
int main()
{
int number, n;
int inp;
int finished = 0;
int cnt = 0;
scanf_s("%d %d", &number, &n);
do
{
scanf_s("%d", &inp);
cnt++;//计数器加加。
//猜数的4种不同的情况。
if (inp < 0)
{
printf("Game Over\n");
finished = 1;//相当于break,这里和最后的while的条件是一样的。
}
else if(inp>number)
{
printf("Too big\n");
}
else if (inp < number)
{
printf("Too small\n");
}
else
{
//猜对但是不同次数的不同情况。
if (cnt ==1)
{
printf("Bingo!\n");
}
else if (cnt <= 3)
{
printf("Lucky You!\n");
}
else
{
printf("Good Guess!\n");
}
finished = 1;
}
if (cnt == n)//猜数的次数到达了指定的次数。
{//下面再多加一次if判断结束的原因是由于能够在第n次刚好猜中数。
if (!finished)//并且还没有结束循环。
{
printf("Game Over\n");
finished = 1;
}
}
} while (!finished);//当finished不等于0的时候退出,这里的判断条件和if后面的括号里面的几乎一样。
return 0;
}
我在粘贴几个运行的结果来证程序的正确性:




