猜数字游戏以及动态实现某一过程

本文介绍了在一行中动态显示字符串welcometochina!的方法,以及如何在Windows环境中实现猜数字游戏,包括使用system函数、随机数生成和种子设置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

本节主要讲解如何制作👇以下内容

1.在一行中实现动态显示过程

2.猜数字游戏

 

 

1. 在一行中实现动态显示welcome to china!

注意:

1.头文件多引用了三个。需要引用<windows.h>(system语句的运用需要使用该头文件)

system("cls");//清屏,清除运行框里所有的内容。
system("pause");//暂停,按任意键继续。
system("shutdown -s -t 60")//最后一个数字代表几秒,表示在几秒后关机。
system("shutdown -a");//取消关机的命令(与上一个搭配)。
system("color 02");//换背景和字体的颜色,具体颜色下面会讲。

<stdlib.h>(定义杂项函数以及内存分配函数)

<string.h>(字符串处理)

2.注意left和right的比较,right根据数组相关知识需要减1

3.Sleep中的S是大写的

#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char arr1[] = "welcome to china!";
    //注意字符串最后一个是\0
    char arr2[] = "#################";
    int left = 0;
    int right = strlen(arr1) - 1;
    while (left <= right)
    {
        arr2[left] = arr1[left];
        arr2[right] = arr1[right];
        printf("%s\n", arr2);
        Sleep(1000);//睡眠1000毫秒
        system("cls");//system函数是库函数,执行系统指令,cls是清除控制台屏幕信息
        left++;
        right--;

    }
    printf("%s\n", arr2);


        return 0;
}
	

1f6725f767d6446fac549c2bfd130b1f.png

 2.制作猜数字游戏

 注意:

1.需要包含头文件<time.h>

2.rand函数生成的随机数范围在(0~32767),如果需要生成1~100之间的数字,需要%100+1刚好在范围之内

3.srand函数是用来设置随机数种子的,如果么有设置随机数种子,rand函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。

4.rand函数的调用需要头文件  <stdlib.h>

5.对于任意数:

0<=rand()%(n-m+1)<=n-m

所以: 

0+m<=rand()%(n-m+1)+m<=n-m+m

 那么表示m~n范围的随机数就可以表示:

rand() %(n-m+1)+m
// 编写一个猜测数字的游戏
 #include<stdio.h>
 #include<stdlib.h>
 #include<time.h>
 //函数
void menu()
{
   printf("********************\n");
   printf("****** 1.play ******\n");
   printf("****** 0.exit ******\n");
   printf("********************\n");
}

//猜数字游戏的实现
void game()
{
   //1.生成随机数(1~100)
   int ret=rand()%100+1;//%100生成的余数是1~99,+1就符合了所需的数字范围
   //种子不能在game内定义,因为在game内定义的种子频繁变换
   //如果输入过快,随机数的形成差距会很小
   int guess=0;
   int count=5;//限制猜测次数
   while(count)
    {
      printf("请猜测数字;>");
      scanf("%d",&guess);
      if(guess<ret)
      {
         printf("猜小了\n");
      }
      else if(guess>ret)
      {
         printf("猜大了\n");
      }
      else
      {
         printf("恭喜你,答对了\n");
         break;
      }
      count--;
    }
   if (count==0)
   {
      printf("猜失败了,正确的答案是:%d\n",ret);
   }

}


//srand函数设置好了种子,之后每一次调用rand函数,生成的随机数是不一样的。
//等到下一次再次调用函数设置种子时,之后每次调用rand函数,生成的随机数和之前的种子生成的随机数不同
 int main()
 {
   int input=0;
   srand((unsigned int) time(NULL));//使得种子一直在变化
   //避免rand函数不能一直产生随机数
   //srand函数里面需要用到unsigned int
   //要使种子发生变化,需要用到time,大家可以想象时间的不断变化,这颗种子也在不断变化
   do
   {
         menu();//用一个空函数来代替
         printf("请选择:>");
         scanf("%d",&input);
         switch(input)
         {
            case 1:
               game();
               break;
            case 0:
               printf("退出游戏\n");
               break;
            default:
               printf("选择错误\n");
               break;
            
         }

   }while(input);

   return 0;
 }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值