初识c语言————新手小白学习c语言的第七天

今天我们学习c语言中的分支和循环语句_do~while循环语句(下)


目录:

一.猜数字小游戏

二.本节重点


下面我们正式学习c语言中的分支和循环语句_do~while循环语句(下)

一.猜数字小游戏 

    参考代码:

#include 
#include 
#include 

void game()
{
  int cai;
  scanf("%d",&cai);
  int mu=rand()%100+1;
  while(mu!=cai)
   {
  if(caimu)
   {
       printf("猜大了,重新猜\n");
    scanf("%d",&cai);
  while((getchar())!='\n');
   }
   }
 if(mu==cai)
    printf("恭喜你猜对了,数字为%d\n",mu);
}

void menu()
{
  printf("==================\n");
  printf("=====1. start=====\n");
  printf("=====0. exit======\n");
  printf("==================\n");
}

int main()
{
  srand((unsigned int )time(NULL));
  int xuan;
  menu();
  printf("玩么\n");
  do
  {

    scanf("%d",&xuan);
    while((getchar())!='\n');
    switch(xuan)
    {
     case 1:printf("请猜数\n");
             game();
             printf("还玩吗\n");
            break;
     case 0:printf("退出游戏\n");
            break;
     default:printf("选择错误,请重新输入\n");
             break;
    }
  }
   while(xuan!=0);
   return 0;
}

   代码解析:

1.制作游戏时肯定要有一个进入游戏的目录,上述代码中menu就是游戏目录,其中当玩家按1开始游戏,按0结束游戏

2.由于每次猜数需要用到多个scanf函数,所以我们要使用while((getchar())!='\n')来定时清理缓冲区,其实使用while(num1=(getchar())!='\n'&&num1!=EOF)更好

3.因为程序使用了rand和srand函数,所以我们要提前声明头文件

4.因为程序使用了time函数,所以我们要提前声明头文件

5.因为time(NULL)的函数类型是time_t,而srand的类型是unsigned int,所以我们要进行类型转换把time(NULL)转换为unsigned int

6.time(NULL)是时间戳,在不同时间,时间戳的结果不同

7.srand函数是为rand函数提供种子,相同种子的话rand的值会相同,所以要把它和time(NULL)结合一起,保证每次rand的值不一样

8.rand()%a+b的定义域为(b,a-1+b),所以rand()%100+1表示的为从1~100内取随机数

   代码结果

初识c语言————新手小白学习c语言的第七天_第1张图片

二.本节重点 

1.srand函数的作用及其与time(NULL)的关系

2.rand函数的定义域

3.更好的清空缓冲区的方法

4.制作小游戏的格式


明天我们学习c语言中的函数

你可能感兴趣的:(c语言,学习,开发语言)