基础刷题--打印‘ X ’图形

简介: 行数受n控制,每行又进行先打印空格,再打印*再打印空格。不过这种方法实在啰嗦。我们换个角度思考,这个其实是个正方形,小点点代表一个位子,那 就是正方形的对角线,

目:打印X形图案

牛客网上的链接 打印x形图案


在做这道题之前可以先做下另外两个题目作为铺垫喔。


  1. 第一题 反斜线形图案.
  2. 第二题正斜线形图案


勤能补拙,努力的人终有收获!


第一题 [反斜线形图案]


d8ff9e0e13a943d4a80d9660a0a3bdbf.png


遇到要打印图案问题可以把实例中的图形给复制放在给定的代码区内看看!


e059bd17ca324406b97d1b1e00bdf122.png


然后看看这个图形到底是怎么组成的。(需要选中它们才能显示)


这里面小点点代表着一个空位,相当于空格,那这样我们不难分析出规律。


行数受n控制,每行又进行先打印空格,再打印*再打印空格。不过这种方法实在啰嗦。我们换个角度思考,这个其实是个正方形,小点点代表一个位子,那 就是正方形的对角线,


392e50f190394d748be875fb82637534.png


定义i表示行,j表示列哈。

那么满足的条件就是i==j


int main()
{
  int n;
  while (scanf("%d", &n) != -1)
  {
    int i, j;
    for (i = 0;i < n;i++)
    {
      for (j = 0;j < n;j++)
      {
        if (i == j)
        {
          printf("*");
        }
        else
          printf(" ");
      }
      printf("\n");
    }
  }
  return 0;
}


4b008b975fbc4d9a887f90e81bb041ba.png


不过我提到的比较啰嗦的那种解法也可以的,代码如下:


#include <stdio.h>
int main() {
    int n;
    while(scanf("%d",&n)!=-1)
    {
      int i,j;
      for(i=0;i<n;i++)
      {
          for(j=0;j<i;j++)
          {
              printf(" ");
          }
          printf("*");
          for(j=0;j<n-1-i;j++)
          {
              printf(" ");
          }
          printf("\n");
      }
    }
    return 0;
}


第二题[正斜线形图案]


ed73c639a59d4a138ebdf1106f45510f.png


d915fe0833c04a21b93e0f8b994e97a9.png


解法跟第一道题目是一样的,把它先看成一个正方形,看*的分布规律就行了。


61c6bf9b5cd74ce7af0620794b3b91ca.png


所以代码如下:


int main()
{
  int n;
  while (scanf("%d", &n) != -1)
  {
    int i, j;
    for (i = 0;i < n;i++)
    {
      for (j = 0;j < n;j++)
      {
        if (i + j == n - 1)
        {
          printf("*");
        }
        else
          printf(" ");
      }
      printf("\n");
    }
  }
  return 0;
}

c1346b3427d646679714ab405c97f982.png


最后一题:X形图案


做完前面俩题,再做这题是不是有种豁然大悟的感觉呢,只要把上面两种对角线的情况综合一下,就能打印出来X图形了。


e961515dc7694523be64cd2b8ace7672.png


#include <stdio.h>
int main()
{
  int n;
  while (scanf("%d", &n) != -1)
  {
    int i, j;
    for (i = 0;i < n;i++)
    {
      for (j = 0;j < n;j++)
      {
        if (i == j)
        {
          printf("*");//反斜线对角线打印;
        }
        else if (i + j == n - 1)//正斜线对角线打印
        {
          printf("*");
        }
        else
          printf(" ");
      }
      printf("\n");
    }
  }
  return 0;
}

a51a32ea70564e0f86fe95492eeec6a5.png


感谢大家的观看喔!!!

相关文章
|
Python
python之使用while循环输出如下星图形
python之使用while循环输出如下星图形
168 1
python之使用while循环输出如下星图形
编程输出如下字符图形(2种方法)
编程输出如下字符图形(2种方法)
|
4月前
|
编译器 Python
在小黑框如何用Python写出多行代码
在小黑框如何用Python写出多行代码
|
6月前
|
数据挖掘 数据处理 Python
【亮剑】介绍了Python中以表格格式打印列表的三种方法
【4月更文挑战第30天】本文介绍了Python中以表格格式打印列表的三种方法:1) 使用字符串格式化,适用于简单场景;2) 使用prettytable库,适合需要更多格式化选项的情况;3) 使用pandas库,适用于处理大量数据和复杂分析。根据需求选择合适的方法来展示数据。
318 0
|
存储 BI Python
[oeasy]python0133_[趣味拓展]颜文字_流石兄弟_表情文字_2ch_kaomoji
[oeasy]python0133_[趣味拓展]颜文字_流石兄弟_表情文字_2ch_kaomoji
166 0
[oeasy]python0133_[趣味拓展]颜文字_流石兄弟_表情文字_2ch_kaomoji
|
存储 缓存 安全
[oeasy]python0082_[趣味拓展]控制序列_清屏_控制输出位置_2J
[oeasy]python0082_[趣味拓展]控制序列_清屏_控制输出位置_2J
104 0
【Python学习笔记】用turtle画四个正三角形并填充不同颜色(计算机二级题目)
【Python学习笔记】用turtle画四个正三角形并填充不同颜色(计算机二级题目)
|
算法 C语言
C语言练级之路num4(有关各种菱形的打印)(用的都是基础的算法),会了这些图形的打印,从此再无你不会用的循环,给你理解的透透的
1.第一题(边框菱形的打印) 2.第二题边框 菱形的进阶 3.第三题(数字菱形的打印) 4.第四题:(空心菱形) 5.第五题(实心菱形): 6.第六题:(外带一个杨氏三角的再一次打印)
|
Go Perl
每日一题---6. Z 字形变换[力扣][Go]
每日一题---6. Z 字形变换[力扣][Go]
每日一题---6. Z 字形变换[力扣][Go]
|
API Python
Python 3,4行代码实现去除图片背景色,从此告别PS!!
Python 3,4行代码实现去除图片背景色,从此告别PS!!
739 0
Python 3,4行代码实现去除图片背景色,从此告别PS!!