龙空技术网

鹏哥《C语言OJ编程题》第17讲 字符金字塔 #计算机专业

鹏哥C语言 33

前言:

今天看官们对“c语言编程输出金字塔图案”可能比较讲究,小伙伴们都想要学习一些“c语言编程输出金字塔图案”的相关内容。那么小编同时在网上汇集了一些对于“c语言编程输出金字塔图案””的相关文章,希望小伙伴们能喜欢,大家快快来学习一下吧!

字符金字塔。

接下来再来往下看,字符金字塔。输入一个字符,用它构成一个三角形的金字塔。输入只有一行一个字符,输出的是该字符构成的三角形的金字塔。如果输入1,金字塔都是由1构成的。当构成金字塔的时候,如果这样输入2,金字塔就应该是2构成的,就这个意思。

这个地方1,这两个1,这是3个1,这是4个1,这是5个1,就这么一个情况。当在这地方要真的去处理它的时候,为什么它在这?是因为左边都是空格,一个空格,两空格,三个空格,四个空格。如果拿捏不准可以把它考过来放这。

这个地方注意,点就是空格,这边是四空格,这边三空格,这边两空格,这边一空格,这一空格都没有。所以当要输出5行这样的信息的时候,行好控制,要输出几行。但是每一行有两部分组成,每一行的前面所有的空格,后面是1组成的金字塔。

这个地方如果实现它,该如何实现?这个时候再走过来,不管三七二十一,是不是首先要写出主函数#include stdio.h,走main函数Returr,给上一个0。这个地方给上什么?要输入一个字符,拿这个字符来组成金字塔。

所以这地方注意,输入的地方肯定得有字符,输入一个字符,这地方可能给char类型叫ch,等于谁?0,这是一个字符。这样说,getchar输入一个字符,这个时候把这个放到ch里面去,这就是输入。

输入完之后要输出金字塔,这个时候注意,输出金字塔的时候怎么输出?首先一行,两行,三行,四行,五行就是你的,不管数字是几,金字塔总共是五行。这地方注意,在输出的时候,一行肯定是一个逻辑,第二行第二个逻辑。

输出五行,就5次循环就可以了,一次搞定一行。

所以这个地方就开始写inti等于几?0for循环,我说i等于0i小于5,i++大家注意,我要这循环,循环一次,要打印金字塔的时候,你打印几行?我说打印5行,所以我就循环了5次,每循环一次打印一行,而这一行每一行由两部分组成,空格和字符。

这个时候大家注意,首先对于这一行打印来说,先打印前面的空格,然后再打印什么?打印字符,空格怎么打印?一行里面的空格有可能不是一个,对于第一行来说,空格有4个,第二行有3个,然后是两个,然后一个空格,然后这个是0个空格对不对?所以这地方的空格得控制一下,一次打印空格,那我要打印几个空格,我循环几次?

所以这地方再写个变量,intj等于几?0for循环,j小于几?我不管j++,这个循环里头要控制空格,所以这给上个printf给上空格,你看我一次打一个空格,那这地方我循环几次?第一行我要循环4次,第二行我要循环3次,两次1次0次对不对?

所以这个地方我就写的什么?4减去谁?i是0的时候我就控制第一行,h0的时候我就进来就是考虑第一行,第一行大家注意,这地方打印4个空格,所以4减0,这小于4,那就是4个空格。如果i++大家注意,下一次第二行的时候,i++变成1了,1小于5再进来这就是4-1,就是3这是不是打印3个空格,就这个意思。

接下来大家注意,空格打印完之后,后面是不是紧挨着就打印字符了,第一行打印一个字符,第二行打印两个字符,第三行打印三个字符,第四行打印四个字符,第一行打五个字符,而这一个字符后面还应该有1个有空格的,看到没有?所以这个地方我怎么办?我说字符也是有个数的,那这地方再用我刚刚的j循环,j=0,j小于几?j++。

现在每次打印一个字符,打印字符是用printf%c空格,字符就是前面获取的ch字符,以前面获取的输入的字符ch里面放字符为金字塔的组成字符。

接下来再来看这个地方小于几?第一行一个,第二行两个,第三行三个,最好跟这个行关联起来。第一次打印第一行的时候i是0,打印第二行的i是1,所以这个地方写成小于等于i,i是0,i是1,i是2。

这样大家注意,当i是1的时候循环进去一次,当i是1的时候循环进去两次,当i是2的时候循环进去三次,这个地方不就是一个两个三个四个五个1的效果吗?这个地方大家注意,这是一行的打印,先打印前面的空格,再打印后面的字符。

这一行打印完之后记得要怎么办?换行,所以\n来这么一走,这个地方外层循环五次,打印五行,效果不就出来了吗?如果大家拿捏不准,没有关系,来看一下,在这地方可以把这个题是不是屏蔽掉,然后放到VS里面测试一下。

往这一放,Ctrl+F5大家看一下,首先代码肯定走起来,选择1,如果这个地方愿意也可以用2来组成金字塔,如果愿意也可以用6来组成金字塔,666,这个地方打印出来了。

现在题目也放到游客网上,能不能提交过去?保存并提交再看一下过去了。所以这个题的难度不在于算法有多复杂,难度在于怎么想明白前面是什么,后面是什么,这一行前面是空格是怎么控制的,后面的1又是怎么控制的,这些东西只要控制精准了,最终的结果就算不错。

同学们,这就是刚刚讲的这么一道练习题,

标签: #c语言编程输出金字塔图案 #c语音输出金字塔