目录

一、打印实心图形

二、打印空心图形

三、打印具体图形以及一些典型的应用题

四、一些碎碎念


前言:1.这里有许多讲法可能不是那么严谨,只是为了方便自己理解和记忆的。

2.一般而言,打印图形的话,有的是要求用图案弄出来,有的要求用数字弄出来,这里总结的是以特殊符号'*'为例,对常见打印图案题目的总结。

一、打印实心图形

【分为基本无格式控制和有格式控制的(需要专门循环控制空格的)】

1.不太需要控制格式

1.打印矩形

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

2.打印直角三角形

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

3.打印倒直三角形

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

2.需要循环控制格式

1. 打印反斜线

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

2.打印正斜线

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

3.打印金字塔(等腰三角形)

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

4.打印倒三角形(倒三角形)

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

5.打印菱形

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

二、打印空心图形

1.打印空心矩形

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

2.打印空心三角形

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

3.打印空心菱形

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

4.……

三、打印具体图形以及一些典型的应用题

1.打印圣诞树

2.打印箭头

3.打印K

4.打印X

5.杨辉三角

……

四、一些碎碎念

打印图案主要是for循环实现。

①一维图形一般是一个for循环实现即可,就比如说线段的打印。

②二维图形一般是for循环嵌套而成的,就比如说矩形,直角三角形,金字塔,菱形……

这里注意如果每行的第0列都有图案,比如说直角三角形(靠左的),只需要控制打印*之间的距离即可,同时这里的内循环条件一般为for(j=1;j<=i;j++);

如果是像金字塔这样的,除了需要for循环嵌套控制打印的*,还要增加一个内循环去专门控制空格,这个条件一般为for(k=1;k<=n-i;k++)

如果是像菱形这样的,一般是需要分块打印,它本身可以看成两个等腰三角形的结合中间多了一条线。上边是金字塔,下边是倒金字塔(参考倒金字塔打印方法)。

③具体图形/比较直观图形的打印一般是几种不同类型图形的组合。所以我们在打印过程中可以将打印这些图形封装成为函数,在此基础上讨论什么时候打印这些图形。其中最典型的就是圣诞树,它是由几个等腰三角形和矩形的组合体,具体实现,参考圣诞树的打印。

总而言之,之前的我把它给魔化了,导致当时一直怯怯懦懦的,现在再回头攻这模块,感到意外感到惊喜,发现“原来它也不过如此”~

学到新的知识,通过自己的思考、练习和总结把一类题目弄懂真的很开心鸭~

【C语言】打印图案总结相关推荐

  1. c语言 打印共九行的菱形,用C语言打印图案的几种实现方法

    循环的使用 维普资讯 http://doc.xuehai.net 科技伯. 1 1 0计算机与信息技术 0 S IN E I F R TO CE C N O MA I N 20 06年第 4期 用 C ...

  2. c语言打印图案的程序,C语言打印心图案----真好玩

    普通的爱心图案 #include #include int main() { float y, x, a; for (y = 1.5f;y > -1.5f;y -= 0.1f) { for (x ...

  3. C语言打印各种图案合集

    1.C语言打印菱形图案 题目描述:​ 输入一个正整数 n,并输出一个菱形,这个菱形有 2n−1 行,第一行有 2 个字母 A,之后的 n−1 行每行字母 A 的数量会递增 2 个,后面的 n+1 行至 ...

  4. 使用Java语言打印一个心形图案

    要使用 Java 语言打印一个心形图案,你可以使用两个 for 循环和一些字符串拼接来实现.你也可以使用 ASCII 码来打印心形图案,这将更加简单. 以下是使用两个 for 循环和字符串拼接的示例代 ...

  5. javafor循环打印图案_C程序使用循环打印盒子图案

    javafor循环打印图案 Input a number and print the following box pattern in C language, 输入数字并以C语言打印以下框形 , 4 ...

  6. JSK-16014 打印字母图形【打印图案】

    打印字母图形 由键盘输入一个大写字母(A 到 Z 中的任意一个),输出如下图所示由相关大写字母组成的图形.所输入的字母一定为输出文件的第一个字符(位于图形的左上角),其余部分的字母构成规律和分布由样例 ...

  7. C语言打印倒三角形代码

    C语言打印倒三角形代码: #include<stdio.h> void main() {  int i,j,k,l;//i为第几层星号:k为星号前的空格数:j为星号数:l为打印的行数: p ...

  8. c语言字母沙漏,C语言打印沙漏,

    C语言打印沙漏, 一.题目: 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** ***** 所谓" ...

  9. C语言打印1000以内的完数

    C语言打印1000以内的完数 #include <stdio.h> int main() {int m, s, i;int n = 1000;for (m = 2; m <= n; ...

最新文章

  1. 开启Android Q DarkMode | 开启Android Q深色模式 夜间模式
  2. check_traffic.sh监控格式为Hex-STRING的解决办法
  3. 12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践
  4. jdbc mysql - Column count doesn't match value count at row 1.
  5. 在VS.NET中使用clickonce技术开发Winform程序
  6. 缓存失效策略(FIFO,LRU,LFU)
  7. [骗分技巧——随机化Ⅱ] [Poi2014]Couriers,CodeChef - TKCONVEX
  8. JS解析格式化Json插件,Json和XML互相转换插件
  9. sublime快速打开终端terminal
  10. 无需无线路由,将系统为win7的笔记本变成wifi的方法
  11. intel 傲腾内存与SSD HDD的对比
  12. 解读《三字经》(7)
  13. Tensorflow读取图片并转换成张量
  14. 华为a199升级android,华为A199(Ascend G710 电信版)救砖教程 救砖包 刷回官方系统支持OTA升级...
  15. 机器学习中训练的模型,通俗理解
  16. 一文说尽 MySQL 优化原理
  17. 【wechat】微信开发——自定义菜单
  18. PMP考试一定要报培训班吗?
  19. 竞赛图强连通分量大小幂和计数 - 组合计数 - 多项式
  20. 2554. 【NOIP2011模拟9.7】帕秋莉·诺蕾姬 (Standard IO)

热门文章

  1. 穆大叔:18年生涯让我抬头挺胸 我是像士兵般离开
  2. html2:什么是超文本?
  3. 11月29日至12月12日总结
  4. 云原生安全之RASP技术(应用运行时自我保护)
  5. Java百宝箱——实现ip地址、手机号、身份证号归属地查询
  6. Prometheus+Grafana (史上最全)
  7. 阿里六面(总结他人事迹)
  8. 蛋糕究竟是怎样做大的
  9. 【LeetCode 1240】 Tiling a Rectangle with the Fewest Squares
  10. 问农事 - 菜蔬作物的节令