所谓的猜数字游戏就是电脑随机产生一个数字,让用户猜这个数字的大小,当然这个数字是有大小范围的,在这里我们设置大小范围为(0,100)。
1.电脑县随机产生一个0到100的数字, random_num = rand() % 100 + 1。
2.用户猜测这个数字大小,用户输入所猜数字。用户一般会用折半查找的思维来猜测数字的大小。
3.电脑判断这个数字:如果大于这个随机数就提示“猜大了”,如果小于这个随机数,就提示“猜小了”,如果刚好等于随机数,就提示“猜对了”,游戏结束。
void game()
{
int input = 0;//用户猜测输入的数字
int random_num = rand() % 100 + 1;
while (1)
{
printf("请输入你的猜测:");
scanf_s("%d", &input);
if (input <random_num)
{
printf("很遗憾,猜小了\n\n");
}
else if (input > random_num)
{
printf("很遗憾,猜大了\n\n");
}
else
{
printf("恭喜你猜对了!!!\n\n");
break;
}
}
}
完整代码如下所示,需要注意的是 srand(time(NULL)) 的作用,如果没有srand随机种子,在每次进入游戏产生的随机数都一样,有了srand,就能保证每次进入游戏都能产生不同的随机数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("\n\n\n\n");
printf(" 1.play 开始游戏\n\n");
printf(" 2.exit 退出游戏 \n\n");
}
void game()
{
int input = 0;//用户猜测输入的数字
int random_num = rand() % 100 + 1;
while (1)
{
printf("请输入你的猜测:");
scanf_s("%d", &input);
if (input <random_num)
{
printf("很遗憾,猜小了\n\n");
}
else if (input > random_num)
{
printf("很遗憾,猜大了\n\n");
}
else
{
printf("恭喜你猜对了!!!\n\n");
break;
}
}
}
int main( )
{
srand(time(NULL));
int choice;//用户的选择
do
{
menu();
printf("\n\n\n请输入你的选择:");
scanf_s("%d", &choice);
if (choice== 1)
{
game();
break;
}
else if (choice == 2)
{
printf("goodbye\n");
break;
}
else
{printf("选择错误,请重新选择:\n");
break;
}
}while (choice);
system("pause");
return 0;
}