牛客网刷题训练(二)

举报
lovevivi 发表于 2022/08/13 06:16:24 2022/08/13
【摘要】 👩‍💻博客主页:风起 风落的博客主页✨欢迎关注🖱点赞🎀收藏⭐留言✒👕参考网站:牛客网💻首发时间:🎞2022年7月19日🎠🎨你的收入跟你的不可替代成正比🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦💬给大家介绍一个求职刷题收割offer的地方👉点击进入网站@TOC 1.k形图案描述KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组...

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

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

👕参考网站:牛客网

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

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

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

@TOC


1.k形图案

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

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

#include<stdio.h>
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;
}

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

2.箭形图案

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

在这里插入图片描述

#include<stdio.h>
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;
}

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

在这里插入图片描述

3.反斜线图案

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

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

#include<stdio.h>
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;
}

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

4.正斜线图案

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

在这里插入图片描述

#include<stdio.h>
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;
}

``

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

5.空心正方形图案

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

#include <stdio.h>
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"); 
      }
  }
}


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

在这里插入图片描述

总结

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。