刚开始没有搞懂规则,花费了好多时间,最后虽调出了结果,还不是很透彻~
打印实心菱形:
#include <stdio.h>
int main()
{
//打印星号图形
//i和j的关系
int i, j;
for (i = 0; i < 4; i++)//外层循环,i控制的是行数,内置循环控制列
{
for (j = 0; j <= 2 - i; j++)
{
printf(" ");
}
for (j = 0; j <= i * 2; j++)
{
printf("*");
}
printf("\n");
}
for (i = 0; i < 3; i++)//外层循环,i控制的是行数,内置循环控制列
{
for (j = 0; j <= i; j++)
{
printf(" ");
}
for (j = 0; j <= 4-2*i; j++)
{
printf("*");
}
printf("\n");
}
}
打印空心菱形:
#include <stdio.h>
int main()
{
//打印星号图形
//i和j的关系
int i, j;
for (i = 0; i < 4; i++)//外层循环,i控制的是行数,内置循环控制列
{
for (j = 0; j <= 2 - i; j++)
{
printf(" ");
}
for (j = 0; j <= i * 2; j++)
{
//挖空的原理,判断什么时候打印星号,什么时候打印空格
if (i == 0 ||j==0||j==2*i)
printf("%c", '*');
else
printf(" ");
}
printf("\n");
}
for (i = 0; i < 3; i++)//外层循环,i控制的是行数,内置循环控制列
{
for (j = 0; j <= i; j++)
{
printf(" ");
}
for (j = 0; j <= 4-2*i; j++)
{
if ( i == 2 || j == 0 || j == 4 - 2 * i)
printf("%c", '*');
else
printf(" ");
}
printf("\n");
}
}
思路有待补充~~