1.C语言打印菱形图案

题目描述:​

输入一个正整数 n,并输出一个菱形,这个菱形有 2n−1 行,第一行有 2 个字母 A,之后的 n−1 行每行字母 A 的数量会递增 2 个,后面的 n+1 行至 2n−1 行,每行字母 A 的数量会递减 2 个,同时,我们需要在每行前输出一定数量的空格,以保证菱形居中,注意末尾不要有多余的输出。

输入格式:

     输入一个正整数 n。(0<n<40)

输出格式:

样例输入:2样例输出: AAAAAAAA
样例输入:3样例输出:AAAAAAAAAAAAAAAAAA

案例分析:

首先菱形有2n-1行,在这里我们先只看前n行,先实现前n行的打印,然后后面对称输出即可。
分析:第1行有2个字母A,第2行4个,第3行6个,第j行就有2j个,仔细观察会发现第j行会先打印 n - j 个空格,然后在打印2j个字母 A ,最后换行,这样这一行的输出就完成了。

前n行输出打印实现:

#include<stdio.h>
int main(){int n;int i,j,k; scanf("%d",&n);//输入nfor(i = 1; i <= n; i++){//表示从第1行到第n行for(j = 1; j <= n-i; j++){//从第1列开始,这一行需要打印 n-i 个空格 printf(" ");}for(k = 1; k <= 2*i; k++){//实现打印每一行需要打印的字符数量printf("A");}printf("\n");//每打印完成一行则换行}return 0;
}

运行结果:

n+1–2*n-1行的打印实现:

我们会发现第k行打印的空格数量为 k - n,每一行需要打印的字符数量则为 2*n - 2*(i - n)个//这里是从第n+1行开始,每一行都比第n行少了2*(i-n)个字符。

n+1行—2*n行打印实现代码:

for(i = n+1; i <= 2*n-1; i++){//表示从第n+1--2*n+1行for(j = 1; j <= i-n; j++){//从第一列开始,打印 i - n 个空格   printf(" ");}for(k = 1; k <= 4*n-2*i; k++){//打印每一行的字符数量printf("A");}printf("\n");//每打印一行换行
}

总代码实现:

#include<stdio.h>
int main(){int n;int i,j,k; scanf("%d",&n);//输入nfor(i = 1; i <= n; i++){//表示从第1行到第n行for(j = 1; j <= n-i; j++){//实现每一行需要打印的空格数量printf(" ");}for(k = 1; k <= 2*i; k++){//实现打印每一行需要打印的字符数量printf("A");}printf("\n");//每打印完成一行则换行}for(i = n+1; i <= 2*n-1; i++){//表示从第n+1--2*n+1行for(j = 1; j <= i-n; j++){//从第一列开始,打印 i - n 个空格   printf(" ");}for(k = 1; k <= 4*n-2*i; k++){//打印每一行的字符数量printf("A");}printf("\n");//每打印一行换行}return 0;
}

运行结果:

2.打印沙漏型图案

题目描述:

输入一个正整数 n,并输出一个沙漏形,这个沙漏形有 2n+1 行,第一行有 2n+1 个字母,其中前 n+1 个字符是从 A 开始依次递增的,而后 n 个字符是由第 n+1 个字符开始依次递减的。之后的 n行每行会少头尾两个字母。再之后的 n 行则正好是前 n 行反过来输出的结果。注意末尾不要有多余的输出。

输入: 输入一个正整数 n(0<n<26)

输出:按照样例输出

样例输入:

  2

样例输出:

 ABCBA  BCB  C BCB ABCBA

案例分析:

首先我们分析每一行的字符数 ,第一行有2n+1个字符,之后每一行都会比自己所在行的上一行少两个字符,所以第k行比第一行少了 (k-1) * 2 个字符,第k行就会有2n-1-2*(k-1) 个字符;
然后,第一行打印了0个空格,第二行1个,三行2个,…第k行就是k-1个;
其次就是打印的字符从什么开始,第一行从‘A’,第二行‘B’,…第k行就是 A+(k-1); ( k < 27)

代码实现:

for(i = 0; i <= n; i++){for(j = 1; j <= k-1; j++){printf(" ");}//打印每一行的空格数量for(j = k-1; j <= n; j++){printf("%c",symbol+j);}//打印每一行前n个字符for(j = n-1; j >= k-1; j-- ){printf("%c",symbol+j);}//打印每一行(n+1)-(2*n+1)个字符printf("\n");//打印一行换行k++;}

运行结果:

(n+1)-(2*n+1)行代码实现:

k = n;
for(i = 2; i <= n+1; i++){//后面只有n-1行代码,把第n+1行看成第2行,从这一行开始for(j = 1; j <= k-1; j++){printf(" ");//k=n,第k行比第n行少机就打印几个空格}for(j = k-1; j <= n; j++){printf("%c",symbol+j);//打印每一行的前n个字符}for(j = n-1; j >= k-1; j--){printf("%c",symbol+j);//打印每一行(n+1)-(2*n+1)个字符}printf("\n");k--;
}

总代码:

#include<stdio.h>
int main(int argc,char *argv[]){int n;int i,j,k = 1;char symbol = 'A';scanf("%d",&n);for(i = 0; i <= n; i++){for(j = 1; j <= k-1; j++){printf(" ");}for(j = k-1; j <= n; j++){printf("%c",symbol+j);}for(j = n-1; j >= k-1; j-- ){printf("%c",symbol+j);}printf("\n");k++;}k = n;for(i = 2; i <= n+1; i++){for(j = 1; j <= k-1; j++){printf(" ");}for(j = k-1; j <= n; j++){printf("%c",symbol+j);}for(j = n-1; j >= k-1; j--){printf("%c",symbol+j);}printf("\n");k--;}return 0;
}

运行结果:

最后创作不易,记得点赞收藏哦!

C语言打印各种图案合集相关推荐

  1. 《C语言入门指南》合集版,学习c语言有这一篇就够了?

    前言: <C语言入门指南>,全文分为3篇,共计34248字,此为合集版,适用初学者入门C语言,非初学者也可以通过本文复习C语言相关知识点,强化记忆!十三肝7天才弄完,贼累了,发布这篇笔记也 ...

  2. R语言语法及建模合集

    点击下列超链接可进入博客: 一.语法篇: R语言常用包分类 R语言数据导入导出总结 R语言数据探索功能总结 R语言中的离群点检测方法 R语言中的向量使用合集 R语言中的因子类型 R语言中的对象以及它的 ...

  3. Python浪漫七夕:可爱的卡通图案合集分享

    一个浪漫的日子--七夕. 每个学科都有属于自己的浪漫.理工科的程序员们被大众普遍认为是直男直女,但其实我们才是最浪漫的,还不抓住机会展现一把,用专属于程序员的烂漫锁住爱! 下面是我搜集到的一些Pyth ...

  4. 用C语言打印简单图案(爱心\圆形\三角形等)

    文章目录 一.打印三角形 二.打印圆形 三.打印心形 一.打印三角形 题目:用∗号打印一个三角形\color{purple}{题目:用 * 号打印一个三角形}题目:用∗号打印一个三角形 基本五种不同形 ...

  5. c语言打印吉祥图案,中国古代吉祥图案的寓意(二)

    原标题:中国古代吉祥图案的寓意(二) 前文我们讲解了古代传统十大吉祥图案,除此之外还有很多常见的吉祥图案,今天我们继续来讲解一部分: 1寿居耄耋 图案为寿石.菊花.猫.蝴蝶,寿石占"寿&qu ...

  6. C语言报错警告合集(转)

    C常见错误 附录1 常见错误中英文对照表 fatal error C1003: error count exceeds number; stopping compilation 中文对照:(编译错误) ...

  7. 如何用C语言打印爱心图案 /爱心代码的实现

    嗨~大家好,这里是可莉! 今天给大家带来是爱心代码的实现~ 赶快学起来然后发送给你的那个ta看把 废话不多说,直接上代码!! #include <stdio.h> #include < ...

  8. C语言打印三角形图案

    1.打印 $ $$ $$$ $$$$ $$$$$ $$$$$$ #include <stdio.h> int main(void){const int ROWS = 6;int i,j;f ...

  9. C语言实用小技巧合集(持续更新)

    1.几个常用的宏 #include <stdio.h> void main(void) {printf("The file is %s.\n", __FILE__); ...

最新文章

  1. 谷歌DeepMind联合创始人被架空
  2. Chrome之排序问题
  3. 给Python加Markdown式排版,在线运行可做Jupyter替身丨谷歌大脑出品
  4. 【postgresql初始化失败】initdb: invalid locale settings; check LANG and LC_* environment variables(之二)
  5. 每个开发人员现在应该下载的十种必备工具
  6. Mac中安装Node和版本控制工具nvm遇到的坑
  7. 基于相关性分析系统性能瓶颈
  8. 引擎优化的facebook中文网
  9. 【高校宿舍管理系统】第二章 整合Mybatis和写CRUD的基本流程以及使用代码生成器生成Mapper等相关代码
  10. Linux timeout命令的使用:timeout - run a command with a time limit
  11. 使用sqlplus显示中文为乱码的解决办法
  12. 汽车租赁管理系统的设计与实现(JSP+SqlServer在线租车网站)
  13. 【18日】foobox 1.0.1 (foobar2000 CUI配置)
  14. 中职计算机应用基础word表格,计算机应用基础-word表格编辑.ppt
  15. lenovo thinkpad t460s opensuse linux 下禁用多点触控屏
  16. JavaWeb购物系统
  17. spring加载一个或者多个properties配置文件方法
  18. ​在职场,我们如果高效地沟通
  19. 设计师:平面设计师、网页设计师、服装设计师、动画/3D设计师、UI设计师等设计师简介(工作内容、方向,知识储备)
  20. centos mysql安装mysql-devel报错

热门文章

  1. centos/Ubuntu安装python3.7.0安装mysql5.7/5.6
  2. 笔记本蓝牙不能正常使用解决方案
  3. 定制XP系统,制作ghost xp安装盘
  4. 电脑传图片到手机adb命令
  5. 仿天眼查-股权结构图
  6. MEMS 惯性传感器 - 参数指标误差介绍
  7. 二元函数对xy同时求导_微积分-7.关于三角函数、极坐标系与参数方程
  8. VINS-Mono 论文翻译
  9. Android面试总结,终于有人把安卓程序员必学知识点全整理出来了,移动架构师成长路线
  10. 关于shell脚本的知识点总结