【C语言】打印图案总结
目录
一、打印实心图形
二、打印空心图形
三、打印具体图形以及一些典型的应用题
四、一些碎碎念
前言: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语言】打印图案总结相关推荐
- 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 ...
- c语言打印图案的程序,C语言打印心图案----真好玩
普通的爱心图案 #include #include int main() { float y, x, a; for (y = 1.5f;y > -1.5f;y -= 0.1f) { for (x ...
- C语言打印各种图案合集
1.C语言打印菱形图案 题目描述: 输入一个正整数 n,并输出一个菱形,这个菱形有 2n−1 行,第一行有 2 个字母 A,之后的 n−1 行每行字母 A 的数量会递增 2 个,后面的 n+1 行至 ...
- 使用Java语言打印一个心形图案
要使用 Java 语言打印一个心形图案,你可以使用两个 for 循环和一些字符串拼接来实现.你也可以使用 ASCII 码来打印心形图案,这将更加简单. 以下是使用两个 for 循环和字符串拼接的示例代 ...
- javafor循环打印图案_C程序使用循环打印盒子图案
javafor循环打印图案 Input a number and print the following box pattern in C language, 输入数字并以C语言打印以下框形 , 4 ...
- JSK-16014 打印字母图形【打印图案】
打印字母图形 由键盘输入一个大写字母(A 到 Z 中的任意一个),输出如下图所示由相关大写字母组成的图形.所输入的字母一定为输出文件的第一个字符(位于图形的左上角),其余部分的字母构成规律和分布由样例 ...
- C语言打印倒三角形代码
C语言打印倒三角形代码: #include<stdio.h> void main() { int i,j,k,l;//i为第几层星号:k为星号前的空格数:j为星号数:l为打印的行数: p ...
- c语言字母沙漏,C语言打印沙漏,
C语言打印沙漏, 一.题目: 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** ***** 所谓" ...
- C语言打印1000以内的完数
C语言打印1000以内的完数 #include <stdio.h> int main() {int m, s, i;int n = 1000;for (m = 2; m <= n; ...
最新文章
- 开启Android Q DarkMode | 开启Android Q深色模式 夜间模式
- check_traffic.sh监控格式为Hex-STRING的解决办法
- 12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践
- jdbc mysql - Column count doesn't match value count at row 1.
- 在VS.NET中使用clickonce技术开发Winform程序
- 缓存失效策略(FIFO,LRU,LFU)
- [骗分技巧——随机化Ⅱ] [Poi2014]Couriers,CodeChef - TKCONVEX
- JS解析格式化Json插件,Json和XML互相转换插件
- sublime快速打开终端terminal
- 无需无线路由,将系统为win7的笔记本变成wifi的方法
- intel 傲腾内存与SSD HDD的对比
- 解读《三字经》(7)
- Tensorflow读取图片并转换成张量
- 华为a199升级android,华为A199(Ascend G710 电信版)救砖教程 救砖包 刷回官方系统支持OTA升级...
- 机器学习中训练的模型,通俗理解
- 一文说尽 MySQL 优化原理
- 【wechat】微信开发——自定义菜单
- PMP考试一定要报培训班吗?
- 竞赛图强连通分量大小幂和计数 - 组合计数 - 多项式
- 2554. 【NOIP2011模拟9.7】帕秋莉·诺蕾姬 (Standard IO)