一.题目要求
用C语言在屏幕上输出以下图案:
二.具体分析
首先我们可以把菱形拆成上下两个部分
我们先来分析上部分:
我们具体分析一下:
空格数 | 星号数 | 行数 |
6 | 1 | 0 |
5 | 3 | 1 |
4 | 5 | 2 |
3 | 7 | 3 |
2 | 9 | 4 |
1 | 11 | 5 |
0 | 13 | 6 |
接下来我们用代码实现一下:
//打印菱形
//打印上半部分
int len = 7;
for (int i = 0;i < len;i++)//行数
{
//打印空格
for (int j = 0;j < len - 1 - i;j++)//空格数
{
printf(" ");
}
for (int k = 0;k < 2 * i + 1;k++)//星号数
{
printf("*");
}
printf("\n");
}
接下来我们看下半部分:
空格数 | 星号 | 行数 |
1 | 11 | 0 |
2 | 9 | 1 |
3 | 7 | 2 |
4 | 5 | 3 |
5 | 3 | 4 |
6 | 1 | 5 |
接下来代码具体实现一下:
//打印下半部分
for (int i = 0;i < len-1;i++)//行数
{
//打印空格
for (int j = 0;j <i+1;j++)//空格数
{
printf(" ");
}
for (int k = 0;k < (len - 1 - i) * 2 - 1;k++)//星号数
{
printf("*");
}
printf("\n");
}
三.代码实现
/*打印菱形
打印上半部分*/
int len = 7;
for (int i = 0;i < len;i++)//行数
{
//打印空格
for (int j = 0;j < len - 1 - i;j++)//空格数
{
printf(" ");
}
for (int k = 0;k < 2 * i + 1;k++)//星号数
{
printf("*");
}
printf("\n");
}
//打印下半部分
for (int i = 0;i < len-1;i++)//行数
{
//打印空格
for (int j = 0;j <i+1;j++)//空格数
{
printf(" ");
}
for (int k = 0;k < (len - 1 - i) * 2 - 1;k++)//星号数
{
printf("*");
}
printf("\n");
}
return 0;
}
完!!!