目录:D:\Cpp\Examples\学习C++的每一天\第5天10.13\菱形
//用 while 循环实现 左上角菱形。
int m = 1;
int x2 = 0;
while (m < 8)
{
int n = 1;
while (n <= m)
{
printf("* ");
++n;
x2++;
}
printf("\n");
++m;
}
printf("循环次数%d", x2);
//用 for 循环实现 左上角菱形。
int i, j;
int x1 = 0;
for (i = 1; i < 8; i++)
{
for (j = 1; j <= i; j++)
{
printf("* ");
x1++;
}
printf("\n");
}
//用while 循环实现 右上角菱形。
int i = 1;
while (i < 8)
{
int j = 1;
while (j < 8 - i)
{
printf(" ");
++j;
}
while (j < 8) //通过内存观察,上一个 while 循环, j = 7,所以下面才可以继续判断他是否小于8.
{
printf("* ");
++j;
}
printf("\n");
++i;
}
//用 for 循环实现 右上角菱形。
int i, j;
for (i = 1; i < 8; i++) 用 for 循环实现
{
for (j = 1; j <= 7-i; j++)
{
printf(" ");
}
while (j < 8) // 要用一个循环来判断 是不是在这个里面。。先打印6个空格,然后在这个基础上在打印 **。
{
printf("* ");
++j;
}
printf("\n");
}
//打印7列13行的 右半身菱形——改进版程序
int i = 1;
int m = 1; //每行要打印的个数
int n = 1; // 方向,1 或者-1
while (i < 14) //i 从1到13
{
int j = 1;
for (; j <= m; ++j) //随着行数的递增,*个数减少,所以可以设置成 加上一个 负数。
printf("* ");
if (i == 7)
n = -1;
m += n;
printf("\n");
++i;
}
//打印13行13列 菱形的 上半部分
int i = 1;
while (i < 8)
{
int j = 1;
while (j < 8 - i) // 顺序是:先打印 7-i 个 空格 ;在打印 i 个 * ;在打印 i 个空格。
{
printf(" ");
++j;
}
while (j < 8 + i) //通过内存观察,上一个 while 循环, j = 7,所以下面才可以继续判断他是否小于8.
{ // 在右上角的基础上,右边依次 第一行不多*,第二行多1个*,第三行多3个*
printf("* ");
++j;
}
printf("\n");
++i;
}
//打印13行13列 菱形 全部
int i;
int m = 6; // 空格 个数
int x = 1;// 空格方向
int n = 1;
int y = 2; //可以 y = 2*x
for (i = 1; i < 14; i++)
{
int j; //打印空格
for (j = 1; j <= m; j++)
printf(" ");
m -= x;
if (m == 0)
x = -x;
//打印**
for (j = 1; j <= n; j++)
printf("* ");
n += y;
if (n == 13)
y = -y;
printf("\n");
}