求C语言金字塔代码思路!

求C语言金字塔代码思路!,第1张

这个图形有几行,就做几次循环,每次循环打印一行:for ( i=0i<Ni++ ),N=3

注意i在3行中取值:0,1,2

循环体中输出每行,每行的构成:分为前边的空格和后面的星号

每行的空格计数:第1行(i=0)空格数2,第2行(i=1)空格数闹高冲1,第3行(i=2)空格数0

那么在i循环中用i表示的空格数就是:总行数-当前行数-1=N-i-1

在i循环中新开一个循环来输出空格,循环几次输出几个空格

每行的星号计数:第1行(i=0)星号数1,第2行(i=1)星号数3,第3行(i=2)星号数5

那么在i循环中用i表示的星号数就是:当前行数*2+1=i*2+1

在i循环中新开一个循环来输出星号,循环几次输出几个空格

最后每行需要一个换行符号输出

最终你的程序为:

for ( i=0i<ni++ ) //这里n是行数

{ for ( j=0j<n-i-1j++ ) printf(" ")//可根据不同图形更换j的循环结束条件公式

for ( j=0j<i*2-1j++ ) printf("*")//可根据不同图形更换j的循环结束条件公式

printf("\n")

}

这样,液歼这种问题就变成了三个公式的总结问题:行数、空格数、星号数,总结出来套到程序中相应位置即可。总结是可以把i的值、空格的值、星号的值列出来,用一点序列的知识就可归纳出公式。

行号   0,1,2

空格   2,1,0  总行号-行号念宽

星号   1,3,5  行号*2-1,这是等差数列

可以通过for循环来实现输出金字塔图形。

#include<stdio.h>

void main()

{

int i,j

for (i=1i<碰悉销=3++i)  // 控制金字塔的层数,本例输出3层,可以改变输出任意层

{

for (j=1j<=3-i++j)  // 控制笑游金字塔每层前面输出的空格数

printf(" ")

for (j=1j<=2*i-1++j) // 控制金字塔每层需要打印'*'的个数

printf("*")

printf("\n") // 一层金字塔输出完毕陆孙,换行继续输出下一层

}

}

/*

2013年12月29日 18:33:34

目的:金字塔

*/

#include<stdio.h>

int main(void)

{

int i, j, k

for(i=1i<=5i++) //构建一个五行的金字塔

{

for(j=1j<=5-ij++) //这里的肆铅j是控制每行的空格个数,第一行就输入5-1个空格,以此类推

printf(" ")

for(k=1k<=2*i-1k++) //这里的k是控制每行裂羡好星号的输派知出个数,就是第一行输出2*1-1个,第二行输出2*2-1个星号,以此类推

printf("*")

printf("\n") //每行打印星号完了后换行,来重新开头打印第二层、第三层、第四层、第五层金字塔

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12570270.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存