一、引入

在C语言的基础学习阶段相信大家都编写过打印各种图形的代码,那么接下来就讲讲如何用程序实现这一功能吧。眼见为实,首先贴上效果图瞧瞧

二、程序代码

(1)实心菱形

int main()

{

int i, j, N = 5;

//上半部分

for(i = 0; i < N; i++) //N控制上半部分行数

{

for(j = i; j < N-1; j++) //随行数递增,空格数递减(这里每行前面的空格数分别为4,3,2, 1,0)

printf(" ");

for(j = 0; j < 2*i+1; j++) //随行数递增,“*”数递增(这里每行前面的*数分别为1,3,5,7,9)

printf("*");

printf("\n"); //记得换行

}

//下半部分,其实就是上半部分的翻转

for(i = N-2; i >= 0; i--) //这里i从N-2开始的,不知道为什么的可以换成N-1试试,保证秒懂

{

for(j = i; j < N-1; j++) //这里的空格数刚好相反,是随行数递增的

printf(" ");

for(j = 0; j < 2*i+1; j++) //这里的“*”数则是递减的(想想图形的样子)

printf("*");

printf("\n"); //同样的记得换行

}

return 0;

}

巧就巧在要将每行的 空格数 和 “*”数 以及 行数 三者之间的关系联系起来,当相同三者之间的关系之后问题就迎刃而解了。

(2)空心菱形

//空心菱形与实心菱形最大的不同就在于:实心菱形每行的“*”是一次性连续打印完的;而空心菱形每行的“*”之间穿插了空格,故需要分两次打印每一行的“*”与空格。

int main()

{

int i, j, k, N = 5;

//up

for(i = 0; i < N; i++)

{

for(j = 0; j < N-i-1; j++) //上下两部分每一行前面的空格数没有变化

printf(" ");

printf("*"); //注意这里只打印了一个“*”

if(0 != i) //这里判断条件的意思是仅当不是第一行时,后面每行才有第二个“*”需要打印

{

for(k = 0; k < 2*i-1; k++) //这里是确定一行中两个“*”之间间隔的空格数

{

printf(" ");

}

printf("*"); //后面补上一个“*”

}

puts(""); //已打印完一行了,换一行继续

}

//down

for(i = N-2; i >= 0; i--) //下半部分是上半部分的倒置,试着自己阅读代码思考一下原理吧

{

for(j = 0; j < N-i-1; j++)

printf(" ");

printf("*");

if(0 != i)

{

for(k = 0; k < 2*i-1; k++)

{

printf(" ");

}

printf("*");

}

puts("");

}

return 0;

}

三、结语

打印图形的程序主要是加深我们对for循环使用的熟练度及一定的逻辑思维能力,试着多敲几次这种类似的程序非常有助于我们的提高。

感兴趣的小伙伴们还可以尝试写程序实现如下图中所示的效果:

c语言输出字母空心菱形,C语言实现打印菱形和空心菱形相关推荐

  1. c语言输出字母随机数,你好,怎样用c语言输出一个1到100的随机数

    你好,怎样用c语言输出一个1到100的随机数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 你好,怎样用c语言输出一个1 ...

  2. C语言输出字母小树,数字小树,**号小树

    1. 以下,是输出字母小树,及规律图解,及vs中使用是scanf的方法 ,(以下各片段都是一个程序里的代码片段) 首先得对输入数据 进行检查,(程序的健壮性) #define _CRT_SECURE_ ...

  3. c语言——输出字母c

    题目:用*号输出字母C的图案. 程序如下: 运行结果:

  4. 字母出现频率c语言,统计字母的使用频率c语言实现

    void main(){char ch; // ch用于一次接收一个字符int i,s [26] = {0}; //数组s []用于计算每个小写字母printf的数量("请输入一个字符串: ...

  5. c语言输出字母表,用c语言输出字母c和菱形

    望远 #include void main() { printf("  ****\n"); printf(" *    *\n"); printf(" ...

  6. c语言输出字母abcd,有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下:...

    有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下: 答案:6  信息版本:手机版 解决时间 2019-10-06 21:36 已解决 2019-10-06 01:51 1.包 ...

  7. c语言输出字母是问号,为什么数组输出会多一个问号

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:为什么数组输出会多一个问号回答:这个问题问的.是什么数组,int数组,char数组?什么叫多输出一个问好.最好把码贴出来,才知道是什 ...

  8. c语言输出字母是问号,关于C语言输出ASCII码128~255和有符号char型溢出的问题。此处大坑弄明白了后记录下来分享……...

    以下代码在控制台正常输出会出现乱码 #include int main(){ char a=197; printf("%c",a); return 0; } 为什么呢? 前提条件说 ...

  9. c语言输出6行三角形,c语言实践 打印字母三角形

    效果如下: 我是怎么想的: 总共需要打印6行字母,那么就需要一个循环来控制打印第几行,大概代码如下: for(int i=0;i<6;i++) { } 每行都会打印字母,而且循环越往后,需要打印 ...

  10. C语言 输出字母图案(金字塔)

    下面两题在cdsn找了很久,几乎没有合适的答案 一,请编写输出以下图案的程序,图案的行数由输入的整数值确定. ABBBCCCCC DDDDDDD...#include <stdio.h>i ...

最新文章

  1. 真正拖垮年轻人的,是沉没成本
  2. Laravel 事件侦听的几个方法 [Trait, Model boot(), Observer Class]
  3. ASP.NET 完成基于表单的身份验证
  4. python代码颜色不同_Python填充任意颜色,不同算法时间差异分析说明
  5. Response_案例3_输出字节数据
  6. gcc编译多个源代码文件的过程(引出makefile)
  7. python pca降维_机器学习之sklearn中的降维算法
  8. 问题 C: 编写函数:比较字符串 之一 (Append Code)
  9. Python实战之多线程编程threading.Thread
  10. Python爬虫基础之Urllib
  11. 制造业erp整体业务流程
  12. 欧姆龙OMRON PLC程序,威纶触摸屏螺丝机 配方程序。 用ST语言编写程序+威纶触摸屏程序
  13. Adb connection Error:远程主机强迫关闭了一个现有的连接。
  14. H5分享页面(1)——web端二次分享配置内容
  15. clickhouse 集群异常排查处理总结
  16. ip route 命令的作用详解
  17. HashMap的原理及扩容
  18. typec扩展坞hdmi没反应_解决电脑接口不足难题,实测绿联九合一type-c扩展坞到底有多强...
  19. 解决迅雷下载外网文件速度为0
  20. Codeforces - Cashback

热门文章

  1. PicGo+Github图床配置
  2. 微信小程序怎么获取到data数据?
  3. 前端学习-案例:制作一个超简单的静态页面
  4. Trie树(字典树)从懵逼到入门
  5. 关于人脸识别的最全研究!
  6. OSPF三种验证配置
  7. 80后小学计算机课上的游戏,80后最值得回味的经典课间游戏
  8. 210所高校21届保研率曝光!这些211保研率堪比985!
  9. java毕业设计鞋类秒杀商城Mybatis+系统+数据库+调试部署
  10. HammerDB造数报错