C语言——简单图形打印学习
A.输出直角三角形
首先,先看一道简单的例题
题目描述
本题要求编写程序,输出指定的三角图案。
输入
输入一个整数
输出
1.按照下列格式输出由“*”组成的三角图案。
(1)初学者的代码,可以简单的运用输出、输入完成。
#include<stdio.h>
int main()
{printf("****\n***\n**\n*");return 0;}
(2)但是,显然,一旦打印的行列多了,这个方法就不适用了,而循环语句可以很好的解决这个问题。
分析图形结构:输入n,第一行n个*,一次随着列的增加减少一个。
#include <stdio.h>
int main()
{
int n;
int i,j;scanf("%d",&n) ; //输入n行for(i=1;i<n+1;i++) //for(i=1;i<=n;i++)也可以,都是保证取到n行后结束循环{for(j=1;j<=n-i+1;j++) //j即那一行*的个数{printf("*");} printf("\n"); //每一行执行完“回车”下一行}return 0;
}
2.变形一下,当打印的不是数字,变成了字母
即我们要引入一个字符型
#include <stdio.h>
int main()
{
int n;
int i,j;
char ch;scanf("%d",&n) ;for(i=1;i<=n;i++) {for(j=1;j<=n-i+1;j++){printf("%c",'A');} printf("\n");}return 0;
}
3.再变形一下,变成字母变成了按顺序打印,注意,字母之间有空格
A B C D
E F G
H I
J
#include<stdio.h>
int main()
{int n;char op = 'A';scanf("%d",&n);int i, j;for(i=1;i<=n;i++){for(j=1;j<=n-i+1;j++){putchar(op++); //输出递加字母。 printf(" "); }printf("\n"); }return 0;
}
B.输出“金字塔”型的数字图形
(1)实心三角形的打印
1
222
33333
444444
555555555
分析,实验A一样,我们要使用循环语句,但是我们不难发现有以下规律
i行 | 数字前面“ ”的个数 | ‘数字的个数 | 每一行打印的数字是 |
1 | 4 | 1 | 1 |
2 | 3 | 3 | 2 |
3 | 2 | 5 | 3 |
... | ... | ... | ... |
i | 5-i | 2i-1 | i |
有代码如下
#include <stdio.h>
int main()
{int i,j,k,n;scanf("%d",&n);for(i=1;i<=n;i++){for(k=1;k<=n-i;k++) //输出空格个数的情况{printf(" ");}for(j=1;j<=2*i-1;j++) //输出数字个数的情况{printf("%d",i); //输出数字的情况}printf("\n"); //回车}return 0;
}
上面代码需要特别注意的是,这个代码包含了一个循环的嵌套,一共调用了三个for语句,但是后面两个语句是并列的的关系。
(2)空心三角形的打印
输出:
1
2 2
3 3
4 4
555555555
分析:和(1)一样大致框架不变,但是实心变空心,我们则需要多考虑,再空心的输出怎么完成。
i行 |
数字前面“ ”的个数 | 数字的个数 | 数字中间的“ ”个数 | 打印的数字 |
1 | 4 | 1 | 0 | 1 |
2 | 3 | 2 | 1 | 2 |
3 | 2 | 2 | 3 | 3 |
4 | 1 | 2 | 5 | 4 |
5 | 0 | 9 | 0 | 5 |
i | n-i | 特殊 | 特殊 | i |
通过表格,我们看的出第五行是特殊的
可以看出每行的第n-i个和第2n-1个一定是数字,1~4行中其余的为空格,第5行其余的也为数字
在(1)的框架中,我们可以嵌套if条件语句去满足这些要求
#include<stdio.h>
int main()
{int i,j,k,n;scanf("%d",&n);for(i=1;i<=n;i++){for(k=1;k<=n-i;k++){printf(" ");}for(j=1;j<=2*i-1;j++){if(j==1||j==2*i-1||i==n) //使1~4行的第一个和最后一个,第5行全部,输出数字printf("%c",'0'+i); //printf("%d",i)也是成立的elseprintf(" "); //除输出数字外的其他输出空格}printf("\n");}return 0;
}
总结
在简单图形输出时,循环语句的嵌套是基础的,其次我们要学会分析各行的特征与行数的数字关系,想办法用代码替代出来。这是有解题思路的必备!!!!
输出为字母或者数字型的时候可以用字符型引出,方便变量。
简单图形打印非常容易发现自己的失误,因为错了以后可以根据输出的样式倒推哪条语句有错,缺少了什么,例如换行是否换对了,是可以通过输出的代码进行分析的。
以上,如有错误,请指正;如有疑问,欢迎一起讨论。
作者的碎碎念
第一次写博客,着手第一篇一直在想主题,最后确定这个,希望大家可以通过这些变形,掌握循环语句的使用和基础图形的打印!!大家晚安,感谢阅读。
C语言——简单图形打印学习相关推荐
- c语言-----之图形打印
目录 前言 一." X "形 二.箭形 三.菱形 总结 前言 拿下三种图形代码转换! 提示:以下是本篇文章正文内容,下面案例可供参考 一.X形 输入:5 输出: * * * ...
- 简单图形打印(需求分解)
打印任意高度的实心菱形 菱形的打印是一个相对复杂的需求,我们需要把它分解成为多个简单的需求来完成. 将它看作是两个部分,上面一个三角形,下面一个倒三角形. 再依次实现打印. 代码如下: //打印任意高 ...
- C语言简单直观打印二叉树
最直观的打印二叉树,只能用队列记录二叉树的层次遍历,并记录每个节点的层数及这层里的列数,最后再调整位置打印输出.这样的方法实现起来非常麻烦,所以大多打印二叉树的方法都是采用逆90度输出的方法. 如有二 ...
- java编程打印以下图形,分享java打印简单图形的实现代码
我们平时都是使用的画图工具进行简单图形的绘制,今天我们使用java打印一些简单的图形 实现代码如下 package test; /** * * @author hanzel * @打印图形 * */ ...
- java打印 好看的图形_分享java打印简单图形的实现代码
我们平时都是使用的画图工具进行简单图形的绘制,今天我们使用java打印一些简单的图形 实现代码如下 package test; /** * * @author hanzel * @打印图形 * */ ...
- 简单图形编程的学习(2)---点 (small basic实现)
简单图形编程的学习(2)---点 (small basic实现) write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 一. 又一顿牢骚 ...
- 简单的java图形_简单图形的输出_Java语言程
简单图形的输出_Java语言程 3.5.4 简单图形的输出 [例3-26] 编程显示以下图形(共N行,N由键盘输入). 程序运行结果:略. 分析与思考:(1)设N=5 第1行 4个空格=5-1 1个& ...
- c语言for循环打印九九乘法口诀的三种简单方法
c语言for循环打印九九乘法口诀的三种简单方法 由于在学习c语言,今天在复习巩固知识,练习代码的时候,简单的总结了三种for循环打印九九乘法口诀的方法,加深了自己的理解.代码注释和简单的思路已经注释在 ...
- python编写星号菱形中间是空的_简单空实心图形打印|Python练习系列[3]
练习内容:打印空实心等腰三角形,空实心菱形,空实心梯形,空实心正六边形 简单空实心图形打印|Python练习系列[3]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.c ...
最新文章
- 总结|深度学习实现缺陷检测
- 国密算法椭圆曲线参数
- MikroTik RouterOS获取在线终端和在线IP总数并自动对IP做限速(转)
- inlfuxdb版本_InfluxDB和MySQL的读写对比测试
- 前端学习(1764):前端调试值之性能分析的方法二
- Linux 文件系统编程之系统调用和标准I/O库
- SQL Server 中系统表的作用
- SpringFramework核心技术一(IOC:详细的依赖和配置)
- MYSQL 碎片查询
- 2022 SpringBoot的房屋租赁平台 房屋展示平台 留学生房屋租赁平台
- 一文了解SG2525AN
- Java技术未来十年发展
- Azure:云平台概述
- Javascript 实现的 CXK 打篮球游戏
- 使用DiskGenius拓展系统盘C盘的容量
- 欧美音乐史上最经典的歌曲
- 【学数据结构】-----串(顺序串、堆串、块链串)(7000字总结+代码+图)
- 「解决方案」运维、能耗、网关整体解决方案
- 慎重决定!从自建服务器到选择阿里云
- mysql触发器应用场景_MySQL触发器的使用场景及方法实例
热门文章
- tomcat 报错 Status 500 - Mapper method ‘xxxxx‘ has an unsupported return type: class xxx
- Shell脚本入门学习
- 召唤神龙 javascript 调整地图大小
- c# API串口通信
- 后面尾缀-T、-X、-TX…分别表示的意思
- 关闭微信内置浏览器页面
- 网络编程 3 tcp通信
- elementui表格根据后端返回的数据进行合并表格
- python opengl书籍_初试PyOpenGL一 (Python+OpenGL)
- Windows Metro Style颜色色值表