猜数游戏学习C语言的又一次实践


计算机会随机地给出0~99之间的一个整数,你能否猜出这个数 呢?每猜一次,计算机都会告诉你猜的数是大了还是小了,直到你猜出 这个数为止。 首先我们需要解决的第一个问题就是如何让计算机随机地产生一个 整数,这个很简单:

#include#includeint main()
{
int a;
a = rand();
printf("%d", a);
system("pause");
return 0;
}

运行一下,计算机是不是随机打印了一个数?但是多运行几次你就 会发现,每次打印的数都是一样的,并没有体现随机性。上面的代码中 起到产生随机数作用的语句就是rand( ),但是只有rand( )是不够 的,我们在rand( )前面加上srand((unsigned)time(NULL))就 可以了,试一试吧,完整的代码如下。注意,这里用到了time( )函 数,因此要加上#include才行。

#include#include#includeint main()
{
int a;
srand((unsigned)time(NULL));
a = rand();
printf("%d", a);
system("pause");
return 0;
}

那么如何生成0~99的整数呢?很简单,只要求随机产生的数除以 100的余数就可以了:

srand((unsigned)time(NULL));
a = rand()%100;

接下来的问题,就是你每输入一个数,就让计算机去判断是大了还 是小了,直到猜对为止。 输入数据我们可以用scanf语句,判断大小我们可以用if语句。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a, b;
srand((unsigned)time(NULL));
a = rand()%100;
scanf("%d", &b);
if(b>a)
printf("大了,请继续\n");
if(b<a)
printf("小了,请继续\n");
if(b==a)
{
printf("恭喜你答对了\n");
}
system("pause");
return 0;
}

运行上面的代码你会发现,我们只猜了一次就不能猜了,在这里我 们用while循环来解决这个问题。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a, b;
srand((unsigned)time(NULL));
a = rand()%100;
while(1)
{
scanf("%d", &b);
if(b>a)
printf("大了,请继续\n");
if(b<a)
printf("小了,请继续\n");
if(b==a)
{
printf("恭喜你答对了\n");
break;
}
}
system("pause");
return 0;
}

在上面的代码中,我们使用while(1)让程序进入无限循环中,然 后当你猜对时,也就是a==b时,用break;来及时退出循环。 我们可以让这个程序变得更有趣一点——限定猜数的次数。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a, b, sum;
sum=6;
srand((unsigned)time(NULL));
a = rand()%100;
while(1)
{
sum--;
scanf("%d", &b);
if(b>a)
printf("大了,还剩下%d次机会,请继续\n", sum);
if(b<a)
printf("小了,还剩下%d次机会,请继续\n", sum);
if(b==a)
{
printf("恭喜你,答对了!\n");
break;
}
if(sum==0)
{
printf("已经没有机会了,请重新开始吧!\n");
break;
}
}
system("pause");
return 0;
}

在上面的代码中,我们用sum来进行计数。初始的时候sum=6,表 示有6次猜的机会,然后每猜一次就执行sum--,直到sum为0,全部机会 用完,程序结束。

猜数游戏学习C语言的又一次实践


0 评论

发表评论