c语言程序 数字金字塔

c语言程序 数字金字塔,第1张

给,已经编译运行通过:

#include<conio.h>

#include<stdio.h>

void main()

{

int n//这个就是定义的你需要输出的行数

int i,j

printf("please input the n: ")

scanf("%d",&n)//输入需要输出的行数

for(i=0i<ni++)

{

for(j=0j<2*(n-1-i)j++) printf(" ")

for(j=0j<=ij++) printf("%d",j+1)

for(j=0j<2*i-1j++) printf(" ")

for(j=i+1j>0j--)

{

if(i==0) break

printf("%d",j)

}

printf("\n")

}

getch()

}

给你一个运行的截图

这个图形有几行,就做几次循环,每次循环打印一行: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,这是等差数列

给,已经编译运行通过:

#include<conio.h>

#include<stdio.h>

void main()

{

int n//这个就是定义的你需要输出的行数

int i,j

printf("please input the n: ")

scanf("%d",&n)//输入需要输出的行数

for(i=0i<ni++)

{

for(j=0j<2*(n-1-i)j++) printf(" ")

for(j=0j<=ij++) printf("%d",j+1)

for(j=0j<2*i-1j++) printf(" ")

for(j=i+1j>0j--)

{

if(i==0) break

printf("%d",j)

}

printf("\n")

}

getch()

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存