在学习完分支与循环的内容之后,我们就可以尝试使用它来写出一个简单的猜数小游戏了。
1. 最简单的猜数游戏
话不多说直接上代码
#include<stdio.h>
int main()
{
int a,b,i;
a=56;//随便给a赋值
for (i = 1;; i++)
{
scanf("%d", &b);
if (b == a)
{
printf("找到了这个数为%d\n", b);
break;
}
if (b < a)
{
printf("太小了,再试一次\n");
}
if (b > a)
{
printf("太大了,再试一次\n");
}
}
return 0;
}
这个猜数游戏是一个最简单的猜数游戏,仅需要一个循环嵌套分支语句就能写出来这里就不多讲了
2.进阶-生成随机数的猜数游戏
在写这个代码之前我们需要了解如何生成随机数,生成随机数可以使用rand()函数,下面我们先介绍一些rand()函数
rand()函数
首先使用 rand()函数需要引用头文件即#include<stdlib.h> 使用格式:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a;
a=rand();
printf("%d",a);
return 0;
}
但是你会发现每次你运行的结果总是 41 原因是:rand函数生成的是伪随机数,是根据某个数按照某个公式计算得出,我们称之为种子(seed);而我们每次运行的种子都是相同的,这就导致运行结果一直相同
这时候我们就需要用到srand函数即为rand函数的种子赋值,我们还需要思考赋什么值,我们可以把种子的值赋值成 time即每次运行程序时的时间;而使用time(0)又需要引用头文件#include<time.h> 因此可以得出代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand((unsigned)time(NULL));
int a;
a=rand();
printf("%d",a);
return 0;
}
这样得到的就是一个真正的随机数了
接下来看一下如何指定这个随机数的范围:
我们在前面加一个a后面加一个%b来确定范围 例如
int a=rand()%10;//代表0~9之间的随机数
int a=44+rand()%12;//代表44~55之间的随机数
即
int a=m+rand()%n;//代表m~(m+n-1)之间的随机数
下面直接看代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand((unsigned)time(NULL));
int a,b,i;
a = rand()%100;
for (i = 1;; i++)
{
scanf("%d", &b);
if (b == a)
{
printf("找到了这个数为%d\n", b);
break;
}
if (b < a)
{
printf("太小了,再试一次\n");
}
if (b > a)
{
printf("太大了,再试一次\n");
}
}
return 0;
}
3.再次进阶-测试一定数量没有答对电脑自动关机
我们只需要添加一个条件即猜数字的最多次数,超过这个数就电脑自动关机
这时候我们就需要用到另一个函数:system(“shutdown -s -t 关机时间”);使用这个函数需要引用头文件夹#include<stdlib.h>.
话不多说上代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand((unsigned)time(NULL));
int a,b,i;
a = rand()%100;
for (i = 1;; i++)
{
scanf("%d", &b);
if (b == a)
{
printf("找到了这个数为%d\n", b);
break;
}
if (b < a)
{
printf("太小了,还有%d次机会\n",8-i);
}
if (b > a)
{
printf("太大了,还有%d次机会\n",8-i);
}
if (i >= 8)
{
system("shutdown -s -t 5");
}
}
return 0;
}
结语
看到这就结束了,可以把代码发给你那懂一点点代码的怨种朋友让他玩猜数游戏了。