用C语言程序实现打印出一个菱形,观察菱形,它的每一行前面会有空格,要打印菱形,首先要算出空格多少的规律,以及每行的数目,把菱形分为上下两部分打印。
算法分析
上半部分:菱形的最长一行“ * ”的数目为它的行数乘2再减上1,菱形的空格数为它上半部分行数减去它的行数。
下半部分:每行的 “ * ” 数为2 *(line-1-i)-1,循环line-1次,空格数为每行的行数加1。
核心代码:
for(a=0;a<line;a++)
{
for(b=0;b<line-a-1;b++)
{
printf(" ");
}
for(c=0;c<2*a+1;c++)
{
printf("*");
}
printf("\n");
}
for(a=0;a<line-1;a++)
{
for(b=0;b<a+1;b++)
{
printf(" ");
}
for(c=0;c<2*(line-1-a)-1;c++)
{
printf("*");
}
printf("\n");
}
全部代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<windows.h>
int main()
{
int line=0,a=0,b=0,c=0;
printf("请输入line的值:\n");
scanf("%d",&line);
for(a=0;a<line;a++)
{
for(b=0;b<line-a-1;b++)
{
printf(" ");
}
for(c=0;c<2*a+1;c++)
{
printf("*");
}
printf("\n");
}
for(a=0;a<line-1;a++)
{
for(b=0;b<a+1;b++)
{
printf(" ");
}
for(c=0;c<2*(line-1-a)-1;c++)
{
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}
展示的结果如下: