1、条件判断语句(也叫分支语句) :if语句、switch语句。
2、循环执行语句:do while语句、while语句、for语句。
3、转向语句:break语句、goto语句、continue语句、return语句。
注意点以及额外需要调用的函数:
1、如果要多条语句,要加上花括号,默认只能控制一条语句。
2、switch语句的表达式必须是整型表达式,case后面应该跟整型常量,不能为变量,可以是字符(因为字符是以ASCII码形式的,ASCII值是整数属于整型)
3、void xxx ()用于封装。
4、rand函数:头文件为#include<stdlib.h>
原型:int rand ();
rand函数会返回一个伪随机数,范围在0-RAND-MAX(32767)间。
rand函数是对一个叫“种子”的基准值进行运算生成的随机数,是伪随机的。
如果要生成不同随机数就让种子变化。
5、srand函数:
初始化随机数的生成器
原型:void srand (unsigned int seed);
注意:不要封装,要放在主函数里
程序调用rand函数前,先调用srand函数。
6、time 函数
头文件为#include<time.h>
一般以时间为种子。该函数可获得时间
原型: time_t time (time_t * timer);
time 函数会返回日历时间。为time_t类型(是32位或64位整型)
①参数timer如果是非NULL指针,函数会将这个返回差值放在timer指向的内存中带回去。
②timer是NULL,只返回时间差值(时间戳)
7、while循环中的break是用于永久地中止循环的
8、continue是跳过本次循环后面的代码,直接去判断部分,进行下一次循环的判断。
9、goto语句:可往前可往后。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void leave()
{
printf("*******************\n");
printf("****1、残忍离开****\n");
printf("****2、无奈留下****\n");
printf("*******************\n");
}
void game()
{
int r = rand() % 100 + 1;
int guess = 0;
int count = 5;
while (count)
{
printf("\n你还有%d次机会\n", count);
printf("请您猜一个数字:");
scanf("%d", &guess);
if (guess < r)
{
printf("您猜小了\n");
}
else if (guess > r)
{
printf("您猜大了\n");
}
else
{
printf("恭喜您,猜中啦!\n");
break;
}
count--;
if (count == 0)
{
printf("你输了\n");
printf("正确答案是: %d\n", r);
}
}
}
void menu()
{
printf("*************************\n");
printf("*******1、开始游戏*******\n");
printf("*******0、退出游戏*******\n");
printf("*******2、游戏开发者*****\n");
printf("*************************\n");
}
int main()
{
int input = 0;
int reput = 0;
srand((unsigned int)time(NULL));
flag:
do
{
menu();
printf("你的选择是: ");
scanf("%d", &input);
switch (input)
{
case 1:
{
game();
break;
}
case 2:
{
printf("感谢创作者GxySkywalker贡献此游戏。\n");
break;
}
case 0:
{
b:
printf("确认退出游戏吗?\n");
leave();
scanf("%d", &reput);
{
switch (reput)
{
case 1:
{
printf("游戏结束\n");
goto c;
}
case 2:
{
goto flag;
break;
}
default:
printf("输入错误,请重新输入\n");
goto b;
}
}
}
default:
{
printf("输入错误,请重新输入\n");
break;
}
}
}while (input);
c:
return 0;
}