计算机会随机地给出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,全部机会 用完,程序结束。
谢谢赞赏
(微信)
0 评论