#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("*******************\n");
printf("*******************\n");
printf("******猜数字游戏***\n");
printf("*******************\n");
printf("*******************\n");
}
void game()
{
srand((unsigned int)time(NULL));
int ret = 0;
int guess = 0;
ret = rand() % 100 + 1;
do
{
scanf_s("%d", &guess);
if (guess > ret)
printf("猜大了,请重新猜测\n");
if (guess < ret)
printf("猜小了,请重新猜测\n");
if (guess == ret)
printf("猜对了\n");
} while (guess != ret);
}
int main()
{
menu();
printf("请输入一个数 确定是否要进行游戏\n开始游戏请按1,取消游戏请按0\n");
int input = 0;
do {
scanf_s("%d", &input);
switch (input)
{
case 1:
printf("开始游戏\n");
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("请重新输入\n");
break;
}
} while (input);
return 0;
}
这是个猜数字的游戏 真正遇到的困难是定义函数时函数内的字符和main函数中的字符什么时候可以调用,什么时候需要重新定义的问题。还有对于srand函数的使用的位置也需要放在main函数中,否则就会成为伪随机种子。对于全局变量和局部变量还需要再掌握。
关于随机数的产生,rand函数,rand()需要给一个随机数种子,srand(),一般使用时间函数来做到随机,srand((unsigned int)time(NULL)),srand函数需要一个整形变量,这里unsigned强制转换格式变为int类型。<stdlib.h>库中