• 牛客网刷题训练(二)


    👩‍💻博客主页:风起 风落的博客主页

    ✨欢迎关注🖱点赞🎀收藏⭐留言✒

    👕参考网站:牛客网

    💻首发时间:🎞2022年7月19日🎠

    🎨你的收入跟你的不可替代成正比

    🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦
    💬给大家介绍一个求职刷题收割offer的地方👉点击进入网站


    1.k形图案

    描述
    KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的K形图案。
    输入描述:
    多组输入,一个整数(2~20)。

    输出描述:
    针对每行输入,输出用“”组成的K形,每个“”后面有一个空格。
    在这里插入图片描述

    #include
    int main()
    {
        int n=0;
        scanf("%d",&n);
        int i=0;
        int j=0;
        for(i=0;i<n;i++)//为n的下三角形
        {
            for(j=0;j<n+1-i;j++)
            {
                printf("* ");
            }
            printf("\n");
        }
        for(i=0;i<n+1;i++)//为n+1的上三角形
        {
            for(j=0;j<=i;j++)
            {
                printf("* ");
            }
            printf("\n");
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    这道题 主要想到 分为n的下三角形 和n+1的上三角形
    实现每行的 字符个数
    在这里插入图片描述

    2.箭形图案

    描述
    KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的箭形图案。
    输入描述:
    本题多组输入,每行一个整数(2~20)。
    输出描述:
    针对每行输入,输出用“
    ”组成的箭形。

    在这里插入图片描述

    #include
    int main()
    {
        int n=0;
        int i=0;
        int j=0;
        while(scanf("%d",&n)!=EOF)
        {
            
        for(i=0;i<n;i++)//g为n的上三角形
        {
            for(j=0;j<n-i;j++)//打印空格
            {
                printf("  ");
            }
            for(j=0;j<=i;j++)//每行的字符个数
            {
                printf("*");
            }
            printf("\n");
        }
        for(i=0;i<n+1;i++)//为n+1的下三角形
        {
            for(j=0;j<2*i;j++)//打印空格
            {
                printf(" ");
            }
            for(j=0;j<n+1-i;j++)//每行的字符个数
            {
                printf("*");
            }
            printf("\n");
        }
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    主要分为 n的上三角形 和n+1的下三角形
    这里格外需要注意空格的存在, 每次都是 2个空格
    两者看着都十分离谱,实际上都是由正常的上下三角变化而成的
    题目还要求了多组输入的要求 如果不加while 则不会通过

    在这里插入图片描述

    3.反斜线图案

    描述
    KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的反斜线形图案。
    输入描述:
    多组输入,一个整数(2~20),表示输出的行数,也表示组成反斜线的“
    ”的数量。

    输出描述:
    针对每行输入,输出用“*”组成的反斜线。
    在这里插入图片描述

    #include
    int main()
    {
        int i=0;
        int j=0;
        int n=0;
        while(scanf("%d",&n)!=EOF)
        {
            for(i=0;i<n;i++)// 行为n 列为n 的正方形
            {
                for(j=0;j<n;j++)
                {
                    if(i==j)
                    {
                        printf("* ");
                    }
                    else
                    printf(" ");
                }
                printf("\n");
            }
           
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    我们只需把这个看作是个正方形 每个都标明下标 如果 i的坐标和j的坐标相等 则为图中图案
    这里注意的是; 一定要加上不能满足条件返回 空格, 否则不会通过
    在这里插入图片描述

    4.正斜线图案

    描述
    KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的正斜线形图案。
    输入描述:
    多组输入,一个整数(2~20),表示输出的行数,也表示组成正斜线的“
    ”的数量。
    输出描述:
    针对每行输入,输出用“*”组成的正斜线。

    在这里插入图片描述

    #include
    int main()
    {
        int i=0;
        int j=0;
        int n=0;
        while(scanf("%d",&n)!=EOF)
        {
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                    if(i+j==n-1)
                    {
                        printf("* ");
                    }
                    else
                    {
                        printf(" ");
                    }
                }
                printf("\n");
            }
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    ``

    我们只需把这个看作是个正方形 每个都标明下标 如果 i的坐标加上j的坐标为行或者列的+1
    则为图中图案
    这里注意的是; 一定要加上不能满足条件返回 空格, 否则不会通过
    在这里插入图片描述

    5.空心正方形图案

    描述
    KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的“空心”正方形图案。
    输入描述:
    多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“
    ”的数量。
    输出描述:
    针对每行输入,输出用“”组成的“空心”正方形,每个“”后面有一个空格。
    在这里插入图片描述

    #include 
    int main()
    {
      int n = 0;
      while(scanf("%d", &n) != EOF)
      {
          for(int i=0; i<n; i++)  //外循环为行
          {
             for(int j=0; j<n; j++) //内循环为列
             {
                if(i==0||i==n-1||j==0||j==n-1)//找规律
                     printf("* ");
                 else
                     printf("  ");
             }
             printf("\n"); 
          }
      }
    }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    我们只需把这个看作是个正方形 每个都标明下标
    当第一行,最后一行时输入字符
    当为第一列 ,最后一列输入字符
    这里最最需要注意的是 :空格为两下空格 别问我 怎么知道的
    都快吐血了

    在这里插入图片描述

    总结

    通过以上来自牛客网的练习题
    相信会对学习c语言更有兴趣 ,让我们一起加油吧
    不太自信的小伙伴可以看看这个训练
    在这里插入图片描述

  • 相关阅读:
    MAX3072EESA+T RS-485/RS-422半双工收发器
    数据结构笔记(王道408)
    精彩分享 | 欢乐游戏 Istio 云原生服务网格三年实践思考
    el-table的一些样式总结
    SpringMVC基础篇:引言
    计算机挑战赛java c组2020年赛题
    python操作迅雷下载,支持文件重命名
    使用Shell终端访问Linux
    融云IM(即时通讯服务)
    C#实现图的邻接矩阵和邻接表结构
  • 原文地址:https://blog.csdn.net/qq_62939852/article/details/125874915