1练习,做一个可变化的打印文字
#include <stdio.h>
#include <string.h>//Sleep(1000)
#include <Windows.h>//system("cls")
int main()
{
char arr1[] = "welcome to wuxi";
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);//睡眠1秒
system("cls");//清空屏幕
left++;
right--;
}
return 0;
}
新学知识点,了解到了Sleep,system("cls")的作用。这里需要记得,字符串的下标是0--……;
strlen()函数是计算字符串长度的函数
2.做一个密码
int main()
{
int i = 0;
for (i = 1; i <= 3; i++)
{
char password[20] = { 0 };
printf("请输入密码;");
scanf("%s", password);
if (strcmp(password, "123456") == 0)//两个字符串比较,不能使用==,要使用strcmp
{
printf("密码正确\n");
break;
}
else
{
printf("输入错误,请重试\n");
}
if (i == 3)
printf("退出\n");
}
return 0;
}
了解到了,字符串之间的比较需要用到strcmp函数,不可以直接拿来双等于号比较
3 小游戏练习:猜数字
//写一个猜数字游戏
//自动产生一个1-100之间的随机数字
//猜数字
//1猜对了,恭喜你,结束了
//猜错了会告诉你猜大了或者猜小了,继续猜,直达猜对
//游戏可以一直玩,不需要从新启动,除非推出游戏
void mune()
{
printf("*****************\n");
printf("*** 1: enter ****\n");
printf("*** 0:exit ****\n");
printf("*****************\n");
}
int game()
{
//猜数字游戏过程
//生成随机数字
//2.rand函数返回了一个0-32767之间的值
//时间-时间戳
//strand 需要的整型是(unsigned int)
//NULLK空的
int ret = rand()%100+1;//%100的余数是0-99,然后+1,范围变为1-100.
//printf("%d\n", ret);
//2猜数字
int guess=0;
while(1)
{
printf("请猜数字...");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了\n");
}
else if (guess < ret)
{
printf("猜小了\n");
}
else
{
printf("猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
mune();
printf("请输入数字\n");
scanf("%d", & input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误,从新输入\n");
break;
}
} while (input);
return 0;
}
需要认识到rand函数,可以生成随机值,但是要记得生成的随机值是一个伪随机值(大概意思是固定的随机值),需要用srand函数,可以把随机值初始化的函数,认识到时间戳的定义:随时间变化而变化,从而了解到srand需要的整型是unsigned int ,至于这边为什么不把这两个函数放一块的原因是,随机值初始化,不需要每一次都初始化,只需要一次就好。
3.2我将密码的小程序和猜数字的小程序组合了一下,并用上了system("cls"),在密码部分总是错了也还能跳入游戏开始部分,改了半天,最后将return 0;放在了输出退出后面。这样就解决了输错密码也能跳入游戏部分。
//写一个猜数字游戏
//自动产生一个1-100之间的随机数字
//猜数字
//1猜对了,恭喜你,结束了
//猜错了会告诉你猜大了或者猜小了,继续猜,直达猜对
//游戏可以一直玩,不需要从新启动,除非推出游戏
void mune()
{
printf("*****************\n");
printf("*** 1: enter ****\n");
printf("*** 0:exit ****\n");
printf("*****************\n");
}
int game()
{
//猜数字游戏过程
//生成随机数字
//2.rand函数返回了一个0-32767之间的值
//时间-时间戳
//strand 需要的整型是(unsigned int)
//NULLK空的
int ret = rand()%100+1;//%100的余数是0-99,然后+1,范围变为1-100.
//printf("%d\n", ret);
//2猜数字
int guess=0;
while(1)
{
printf("请猜数字...");
scanf("%d", &guess);
if (guess > ret)
{
printf("猜大了\n");
}
else if (guess < ret)
{
printf("猜小了\n");
}
else
{
printf("猜对了\n");
break;
}
}
}
int main()
{
{
int i = 0;
for (i = 1; i <= 3; i++)
{
char password[20] = { 0 };
printf("请输入密码;");
scanf("%s", password);
if (strcmp(password, "123456") == 0)//两个字符串比较,不能使用==,要使用strcmp
{
printf("密码正确\n");
break;
}
else
{
printf("输入错误,请重试\n");
}
if (i == 3)
{
printf("退出\n");
return 0;
}
}
system("cls");
}
int input = 0;
srand((unsigned int)time(NULL));
do
{
mune();
printf("请输入数字\n");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误,从新输入\n");
break;
}
} while (input);
return 0;
}