分支和循环语句(猜数字游戏)

C语言的语句可分为以下五类:表达式语句、函数调用语句、控制语句、复合语句、空语句。

控制语句包括分支语句,循环语句和转向语句

在switch中无法直接实现分支,要搭配break使用。

case后面是整型常量,枚举常量,switch中要是整型。

getchar——获取(输入)一个字符,(读取失败的时候返回EOF)(返回值

类型是int)

putchar——输出一个字符

gets——获取一个字符串

puts——输出一个字符串

C语言中用rand函数生产随机数

而rand函数每次生成的随机数的顺序都相等,这里需要用到srand函数

当srand()括号内的数字不同时,生成的随机数就不同。而我们生活中时间是不断变化的,所以我们把时间戳(time(NULL))放进括号内

srand((unsigned)time(NULL));

int r = rand()%100 + 1;//模上几就是生成多少以内的随机数(不包括),这里是1~100

go to 语句:

go to again;会跳转到again:处,只能在同一函数中使用

go to 语句大多用于多层循环嵌套,可以一次性跳出多次循环,而break不能达到这个效果。

下面附上拆数字游戏的代码

#include
#include
#include
void eume()//打印菜单,无返回值
{
	printf("************************************\n");
	printf("**********   1:开始游戏   **********\n");
	printf("**********   0:退出游戏   **********\n");
	printf("************************************\n");
}
void game()//游戏的玩法
{
	int a = 0;
	int r = rand() % 100 + 1;//1~100的随机数
	while (1)//输入了1开始游戏,当前面输入0的时候,0为假就不会进行游戏
	{
		printf("猜数字-->");
		scanf("%d", &a);//输入猜的数字
		if (a < r)
		{
			printf("小了\n");
		}
		else if (a > r)
		{
			printf("大了\n");
		}
		else
		{
			printf("恭喜你,猜对了!\n");
			break;
		}
	}

}
int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		eume();
		printf("请输入-->");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("开始游戏\n");
			break;
		case 0:
			printf("游戏结束\n");
			break;
		default:
			printf("输入错误\n");
			break;
		}
		game();
	} while (1);//使用do while循环,循环至少执行一次
	return 0;
}

你可能感兴趣的:(初识C语言,游戏,c语言)