本文主要是介绍C语言 棱形图案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、问题分析
上部分:
下部分:
二、代码演示
一、问题分析
如上图所示,我们可以将棱形进行拆解,分为上下两个部分。
上部分:
通过观察,我们得到 单边空格数 = 上半部分总行数 - 行数 - 1
而 星号 = 行数 × 2 + 1
所以我们设 line 为上半部分总行数 i 为行数 。
那么代码如下:
for(i=0; i<line; i++){//打印一行//打印空格int j = 0;for(j=0; j<line-1-i; j++){printf(" ");//打印空格}//打印*for(j=0; j<2*i+1; j++){printf("*");//打印星号}printf("\n");}
下部分:
通过观察,我们得知 下半部分的 单边空格数 = 行数
下半部分的 星号 = (下半部分总行数 - 行数 )× 2 - 1
于是我们可以设 下半部分总行数为 上半部分行数-1 也就是 line -1 , i为行数
那么代码如下:
for(i=0; i<line-1; i++){//打印一行int j = 0;for(j=0; j<=i; j++){printf(" ");//打印空格}for(j=0; j<2*(line-1-i)-1; j++){printf("*");//打印星号}printf("\n");}
二、代码演示
int main()
{int line = 0;int i = 0;scanf("%d", &line);//7//打印上半部分for(i=0; i<line; i++){//打印一行//打印空格int j = 0;for(j=0; j<line-1-i; j++){printf(" ");}//打印*for(j=0; j<2*i+1; j++){printf("*");}printf("\n");}//打印下半部分for(i=0; i<line-1; i++){//打印一行int j = 0;for(j=0; j<=i; j++){printf(" ");}for(j=0; j<2*(line-1-i)-1; j++){printf("*");}printf("\n");}return 0;
}
这篇关于C语言 棱形图案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!