本节主要讲解如何制作👇以下内容
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;
}
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;
}