想要输出下面的星星图案
*
***
*****
*******
*********
***********
*************
***********
*********
*******
*****
***
*
可以用两个for循环的嵌套来完成:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0, j = 0;
for (i = 1; i <=7; i++)
{
for (j =7-i; j>0; j--)
{
printf(" ");
}
for (j = 1; j < 2 * i; j++)
{
printf("*");
}
printf("\n");
}
for (i = 1; i <= 6; i++)
{
for (j = 1; j < i+1; j++)
{
printf(" ");
}
for (j = 14-(2*i+1); j>0; j--)
{
printf("*");
}
printf("\n");
}
return 0;
}
</pre><pre class="cpp" name="code" snippet_file_name="blog_20160925_3_336324" code_snippet_id="1900168"></pre><pre class="cpp" name="code">但是这样输出的是一个固定的行数的星星图案,可以通过输出行数,这样就可以输出不一样行数的星星图案
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0, j = 0, line = 0;
printf("请输入行数:\n");
scanf("%d",&line);
//输出上半部分星星
for (i = 1; i <= line; i++)
{
//输出空格
for (j = line - i; j >0; j--)
{
printf(" ");
}
//输出星星
for (j = 1; j < 2 * i; j++)
{
printf("*");
}
printf("\n");
}
//输出下半部分星星
for (i = 1; i <= line - 1; i++)
{
//输出空格
for (j = 1; j < i+1; j++)
{
printf(" ");
}
//输出星星
for (j = (2 * line) - (2 * i + 1); j>0; j--)
{
printf("*");
}
printf("\n");
}
return 0;
}
用第二种方法就可以输出不一样行数的星星图案了
版权声明:本文为LX18792732127原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。