当我们学到一种程度可以写一些小游戏,也是对以前学的知识一次总结。
思路:
- 1~100之间的数字(假设);
2. 猜大了或猜小了继续猜;
3. 猜对了,程序停止;
先上代码在解释!
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void eunm()
{
printf("*************************************************\n");
printf("*********************1.play**********************\n");
printf("*********************0.txit**********************\n");
printf("*************************************************\n");
}
//这而只是让程序结果好看
void game()
{
int ret = 0;
int k = rand() % 100 + 1;
while (1)
{
printf("请输入猜你要的数字:>");
scanf("%d", &ret);
if (ret > k)
{
printf("猜大了\n");
}
else if (ret < k)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL)) //(unsigned int)->因为rand()随机数的范围是 0~32767所以是无符号整形 time(NULL) -> 返回一个时间戳
do
{
eunm();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
printf("")
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
}
} while (input);
return 0;
}
说明:
- 将srand((unsigned int)time(NULL))写在main(),因为只使用一次,为什么了?你可以自己试一试看;
- 在C语言中有一个库函数 rand()–> 形成随机数,与之相应函数 srand()—>设置随机数;
- 什么是时间戳?自己可以在网上看看或找一篇好的博客:
上面的代码还可以修改过一下:
void test()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
eunm();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,请重新选择\n");
}
} while (input);
}
int main()
{
test();
return 0;
}
这样一修改,main()直接调用一次,不然每次会调用mian()函数;