如何用C语言打印出三角星号塔?

作者:wendy | 创建时间: 2023-05-28
用C语言打印三角形的星号塔,可以说是在C语言学习中是十分经典的一个题目,但对于新手来说这个程序看起来不长,但有点不好理解,下来我会分部说说都代表啥,为啥程序这样就能打印出来一个三角塔。...
如何用C语言打印出三角星号塔?

操作方法

我用的CodeBlocks来进行演示。

打开软件输入程序,运行,可得到三角塔。(程序我会发在最后一步)。

下来我说一下内部程序每一步都是什么作用。(外部环境程序就不说了,基础)。

创建所需变量,i  j  k  space,特别注意space,之所以给它复制空格,因为三角塔其实是一个左半部分为一个空格组成的半个倒三角形(如图标记)。

在接下来这个for循环嵌套中,可以发现  i  j  各控制一个变量,如果你自己在纸上一个一个写出来每次循环的话,就会发现,i  在控制横行,而  j  在控制每一列,因为内部for j>=i  ,所以可以看出,每横行随着  i  一次次的增大而打印的空格越来越少(这个嵌套就是打印上面说的半个空格倒三角形,)。

而如图这个循环就是在每横行空格打印完后补上需要的‘ * ’。

上面所说的打印空格的规律是: 第1横行,打印3个空格。 第2横行,打印2个空格。 第3横行,打印1个空格。 第4横行,打印0个空格。

而在后面补上的信号规律则是: 第1横行,补上1个星号。 第2横行,补上3个星号。 第3横行,补上5个星号。 第4横行,补上7个星号。 而这个需要自己在输入程序之前发现每行补上的数目与每行的关系,即可列出程序。,上面的空格也是,不过相比之下比这个简单,不用验算就看得出来规律。

完整程序如下: #include <stdio.h> #include <stdlib.h> main() { int i,j,k; char space=' '; for(i=1;i<=4;i++) { for(j=3;j>=i;j--) { printf("%c",space); } for(k=1;k<=(2*i-1);k=k+1) { printf("*"); } printf("\n"); } }

温馨提示

CodeBlocks程序如有需要,可以私信我。
点击展开全文

更多推荐