C语言和python中写一个猜数字小游戏(菜鸟分享)
在学习这些语法初期,可以学着写一些有趣的小东西来提升学习兴趣.
写一个随机数为1-100的猜数字小游戏.
一. 在C语言中: 使用while循环 / goto语句 和if条件语句来达成需求.
下面展示代码:
1.while语句方式
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand((unsigned int)time(NULL)); //初始化随机数生成器(下面详细介绍)
int num = rand() % 100 + 1; //rand()函数来创造随机值
int guess_num = 0;
while (1) //如果输入的数字不符合要求,则进行无限循环
{
printf("请输入一个数字:"); //提示输入数字
scanf("%d", &guess_num);
if (guess_num == num)
{
printf("恭喜你,猜对了!\n"); //数字猜对了,break 跳出while循环
break;
}
else if (guess_num > num)
{
printf("你猜大了\n"); //猜大了,继续循环
}
else
{
printf("你猜小了\n"); //猜小了,继续循环
}
}
return 0;
}
(1).创造随机数:使用rand()函数,在这里,它创造的并不是真正的随机数,rand() 生成的是伪随机数(范围是0-RAND_MAX)(RAND_MAX在大多数系统中是32767),序列由种子唯一决定(一般默认种子为1),如不做处理,那每次调用它得出的数字会是不变的.
故需使用srand()-函数初始化随机数生成器,上述默认情况下即srand(1),里面的1就是所谓的种子,种子改变会让随机值改变,若想让每次创造的随机值不同,必须让种子不断变化.
提到不断变化的量,我们常会想到时间(time),它时时刻刻在变化,于是这里我们采用time()函数来满足要求,此函数可以获得当前系统时间(从 1970 年 1 月 1 日 00:00:00 UTC 起的秒数)(规定)
(2).(unsigned int)time(NULL):
参数 NULL 表示不需要存储时间值,直接返回结果
(unsigned int) 强制类型转换:将 time() 返回的 time_t 类型值转换为 unsigned int 类型。
(3).至此,我们就可以得到一个随机数(在上方提到的范围内),数字太大不好猜.故将rand()%100
取余100使r值范围变成0~99,再+1使r值范围变成1~100.
(4).当n==r时,if语句中的break便可以跳出while循环,否则将继续循环直至猜对.
2.goto语句方式
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand((unsigned int)time(NULL));
int num = rand() % 100 + 1;
int guess_num = 0;
again: #goto跳回的位置
printf("请输入一个数字:");
scanf("%d", &guess_num);
if (guess_num == num)
{
printf("你猜对了!\n");
}
else if (guess_num > num)
{
printf("你猜大了\n");
goto again; #在下面两种猜错的情况下,goto跳回数字输入阶段来创造
} #循环
else
{
printf("你猜小了\n");
goto again;
}
return 0;
}
创造随机数部分与上方相同,主要是goto语句的使用
注意:goto语句的使用不当可能会产生混乱等,需视情况适合使用.
二.python方式
import random #导入随机数模块,生成1~100的随机数
num = random.randint(1,100)
flag = True
guess_num = 0
while flag: #用bool变量控制循环,猜中后flag变成False
guess_num = int(input("请输入一个数字:")) #退出循环
if guess_num == num:
print("恭喜你,猜对了!")
flag = False
elif guess_num > num: #所有的if else语句都存在于while中,猜错会一直
print("你猜的数大了") #循环直至猜对结束
else :
print("你猜的数小了")
1.random.randint(a,b) 是python内置random模块中的随机整数函数,会随机生成一个在a,b之间(包括a,b)的随机整数.
python在使用上较C语言更为简单,在此不多加赘述.
文章如有问题,还请佬们不吝赐教.
IT小白,在这里不断更新学习中的收获总结和困难反思.
更多推荐



所有评论(0)