循环练习例题

例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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值