C语言-打印字符图形.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言-打印字符图形

打印字符图形 例1 用for循环编程画出下列图形: M MM MMM MMMM MMMMM MMMMMM MMMMMMM MMMMMMMM MMMMMMMMM MMMMMMMMMM 分析:该图形一共有10行,每一行增加一个字符,所以,应循环10次,每次输出一行,其循环模式为: for i 1;i 10;i++ 输出第i行 换行 “输出第i行”是在for循环中的一个小循环。每次执行“输出第i行”,其长度都是不一样的,但长度的变化正好与循环变量i同步,故可以依赖于i。注意到第i行的M字符数与i的关系。 行 i M数 1 1 1 2 2 2 3 3 3 4 4 4 … 10 10 10 所以,可以得到“输出第i行”的循环为: for j 1;j i;j++ printf “%c”,’M’ 完整的程序如下: #include main int i,j; for i 1;i 10;i++ for j 1;j i;j++ printf %c,M ; printf \n ; 说明:对付这种字符图形,一般用两重循环,外循环遍历所有行,内循环遍历行中每个字符。 例2 输出下列图形: MMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMM MMMMMMMMMMMMM MMMMMMMMMMM MMMMMMMMM MMMMMMM MMMMM MMM M 分析:该图形一共有10行,这次要考虑每行中,先输出若干个空格,所以,其外循环为: for i 1;i 10;i++ 输出若干个空格 输出若干M 换行 下面列出在第i行,其空格数,M数与i的关系为: 行i 空格数 M数 1 0 19 2 1 17 3 2 15 4 3 13 … 10 9 1 即第i行的空格数为i-1个,M个数为21-2i。即在第i行输出空格和输出M字符的内循环分别为: for j 1;j i-1;j++ printf “ ” ; for k 1;k 21-2i;k++ printf “%c”,’M’ ; 合起来,构成一个完整程序如下: #include main int i,j,k; for i 1;i 10;i++ for j 1;j i-1;j++ printf ; for k 1;k 21-2*i;k++ printf %c,M ; printf \n ; 例3 输出下列图形: A ABC ABCDE ABCDEFG ABCDEFGHI ABCDEFGHIJK ABCDEFGHIJKLM ABCDEFGHIJKLMNO ABCDEFGHIJKLMNOPQ ABCDEFGHIJKLMNOPQRS 分析:该图形一共有10行,这次要考虑每行中,先输出若干个空格,所以,其外循环为: for i 1;i 10;i++ 输出若干个空格 输出若干字符 换行 如果要输出A起头依序的n n 27 个字母,可以为: for ch A;ch A+n;++ch printf %c,ch ; 下面分析每一行中的空格数与字符数与第i行之间的关系着手: 行i 空格数 字符数 1 9 1 2 8 3 3 7 5 4 6 7 … 10 0 19 即第i行的空格数据为10-i个,字符数为2i-1。因此,输出空格数和字符数的内循环分别为: for j 1;j 10-i;++j /*输出空格数*/ printf ; for ch A;ch A+2*i-1;++ch printf %c,ch ; 合起来,构成一个完整程序如下: #include main int i,j; char ch; for i 1;i 10;i++ for j 1;j 10-i;++j /*输出空格数*/ printf ; for ch A;ch A+2*i-1;++ch /*输出字符*/ printf %c,ch ; printf \n ; 例4 输出下列图形: * *** ***** ******* ***** *** * 上面的图形可以分成两部分: (1) * *** ***** ******* 与例3的分析一样,输出空格数和字符数的内循环分别为: for j 1;j 4-i;++j /*输出空格数*/ printf ; for k 1;k 2*i-1;++k /*输出“*”号*/ printf * ; (2) ***** *** * 与例2的分析一样,输出空格数和字符数的内循环分别为: for j 1;j i;++j /*输出空格数*/ printf ; for k 1;k 7-2*i;++k /*输出“*”号*/ printf * ;

文档评论(0)

zilaiye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档