例1:给出两个数组
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
int main()
{
char arr1[] = "welcome to bit!!!!";
char arr2[] = "##################";
int left = 0;
int right = strlen(arr1)-1;
while (left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
left += 1;
right -= 1;
printf("%s\n", arr2);
Sleep(1000);
system("cls");
}
return 0;
}
我在刚接触这道题的时候写出了程序,但是没能想到如何将两个数组联系到一起,导致输出结果的行数虽然一致,但是内容却是重复的,所以这道题对我来说关键点就在于:
arr2[left] = arr1[left];
arr2[right] = arr1[right]; 这两行代码。需要注意的是输出字符串需要用%s。
1.如果我们需要将输出结果一行一行来输出,时间间隔自定义,那么我们就需要用到
#include <windows.h>这个头文件,再加上Sleep(1000)库函数,此函数功能为每1000毫秒输出一行内容。
2.如果我们想让输出结果只有一行,达到输出结果只在第一行变换的结果(变换内容为第一行变第二行同时第一行内容消失,第二行变第三行。。。依此类推)这种效果就需要引入一个库函数叫做system此函数的功能是用来执行系统命令的,system()内的内容为命令,次库函数一样需要引入一个头文件#include <stdlib.h>。
例2:编写代码实现,模拟用户登录,并且只能登陆三次。(只允许登录三次,如果密码正确则提示登录成功,如果三次均输入错位,则推出程序)。
#include <stdio.h>
int main()
{
int i = 0;
char arr1[] = { 0 };
for (i = 0; i < 3; i++)
{
printf("请输入密码:");
scanf("%s", arr1); //数组名本来就是地址故不需要取地址
if (strcmp(arr1, "abcdef") == 0) //比较两个字符串是否相等,不能使用==,应该用strcmp
{
printf("密码正确登录成功\n");
break;
}
else
{
printf("密码错误\n");
}
}
if (i == 3)
{
printf("三次密码均输入错误,程序关闭");
}
return 0;
}