思考思路:
1:如上图 我们采用for循环依次输出行数,每一行也采用for循环输出每一列
2:将此菱形分为两个部分来处理首先是
根据观察发现
第一部分
每一行的空格数与行数有一定的规律 空格数 =(总行数-当前行数)
星号数=当前行数*2-1
第二部分
把下半部分看成一个新的数列 (原本的第8行看做第一行)于是不难看出
每一行的空格数与行数有一定的规律 空格数=当前行数(更改后的行数)
int i=1 ( i 表示当前图像的第 i 行) 星号数=(上菱形总行数 - i)*2-1
代码演示 :
#include<stdio.h>
#include<stdlib.h>int main()
{
int sum = 0,i = 0,a = 0; // a为当前行数 sum为半菱形行数
printf("请输入行数:\n");
scanf("%d",&sum);
for(a=1;a<=sum;a++)
{
for(i=1;i<=sum-a;i++ )
{
printf(" ");
}
for(i=1;i<=2*a-1;i++)
{
printf("*");
}
printf("\n");
}
for(a=1;a<=sum-1;a++)
{
for(i=1;i<=a;i++)
{
printf(" ");
}
for(i=1;i<=2*(sum-a)-1;i++)
{
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}