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语言——简单图形打印学习相关推荐

  1. c语言-----之图形打印

    目录 前言 一."  X "形 二.箭形 三.菱形 总结 前言 拿下三种图形代码转换! 提示:以下是本篇文章正文内容,下面案例可供参考 一.X形 输入:5 输出: *   *  * ...

  2. 简单图形打印(需求分解)

    打印任意高度的实心菱形 菱形的打印是一个相对复杂的需求,我们需要把它分解成为多个简单的需求来完成. 将它看作是两个部分,上面一个三角形,下面一个倒三角形. 再依次实现打印. 代码如下: //打印任意高 ...

  3. C语言简单直观打印二叉树

    最直观的打印二叉树,只能用队列记录二叉树的层次遍历,并记录每个节点的层数及这层里的列数,最后再调整位置打印输出.这样的方法实现起来非常麻烦,所以大多打印二叉树的方法都是采用逆90度输出的方法. 如有二 ...

  4. java编程打印以下图形,分享java打印简单图形的实现代码

    我们平时都是使用的画图工具进行简单图形的绘制,今天我们使用java打印一些简单的图形 实现代码如下 package test; /** * * @author hanzel * @打印图形 * */ ...

  5. java打印 好看的图形_分享java打印简单图形的实现代码

    我们平时都是使用的画图工具进行简单图形的绘制,今天我们使用java打印一些简单的图形 实现代码如下 package test; /** * * @author hanzel * @打印图形 * */ ...

  6. 简单图形编程的学习(2)---点 (small basic实现)

    简单图形编程的学习(2)---点 (small basic实现) write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 一. 又一顿牢骚 ...

  7. 简单的java图形_简单图形的输出_Java语言程

    简单图形的输出_Java语言程 3.5.4 简单图形的输出 [例3-26] 编程显示以下图形(共N行,N由键盘输入). 程序运行结果:略. 分析与思考:(1)设N=5 第1行 4个空格=5-1 1个& ...

  8. c语言for循环打印九九乘法口诀的三种简单方法

    c语言for循环打印九九乘法口诀的三种简单方法 由于在学习c语言,今天在复习巩固知识,练习代码的时候,简单的总结了三种for循环打印九九乘法口诀的方法,加深了自己的理解.代码注释和简单的思路已经注释在 ...

  9. python编写星号菱形中间是空的_简单空实心图形打印|Python练习系列[3]

    练习内容:打印空实心等腰三角形,空实心菱形,空实心梯形,空实心正六边形 简单空实心图形打印|Python练习系列[3]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.c ...

最新文章

  1. 总结|深度学习实现缺陷检测
  2. 国密算法椭圆曲线参数
  3. MikroTik RouterOS获取在线终端和在线IP总数并自动对IP做限速(转)
  4. inlfuxdb版本_InfluxDB和MySQL的读写对比测试
  5. 前端学习(1764):前端调试值之性能分析的方法二
  6. Linux 文件系统编程之系统调用和标准I/O库
  7. SQL Server 中系统表的作用
  8. SpringFramework核心技术一(IOC:详细的依赖和配置)
  9. MYSQL 碎片查询
  10. 2022 SpringBoot的房屋租赁平台 房屋展示平台 留学生房屋租赁平台
  11. 一文了解SG2525AN
  12. Java技术未来十年发展
  13. Azure:云平台概述
  14. Javascript 实现的 CXK 打篮球游戏
  15. 使用DiskGenius拓展系统盘C盘的容量
  16. 欧美音乐史上最经典的歌曲
  17. 【学数据结构】-----串(顺序串、堆串、块链串)(7000字总结+代码+图)
  18. 「解决方案」运维、能耗、网关整体解决方案
  19. 慎重决定!从自建服务器到选择阿里云
  20. mysql触发器应用场景_MySQL触发器的使用场景及方法实例

热门文章

  1. tomcat 报错 Status 500 - Mapper method ‘xxxxx‘ has an unsupported return type: class xxx
  2. Shell脚本入门学习
  3. 召唤神龙 javascript 调整地图大小
  4. c# API串口通信
  5. 后面尾缀-T、-X、-TX…分别表示的意思
  6. 关闭微信内置浏览器页面
  7. 网络编程 3 tcp通信
  8. elementui表格根据后端返回的数据进行合并表格
  9. python opengl书籍_初试PyOpenGL一 (Python+OpenGL)
  10. Windows Metro Style颜色色值表