编写一个 C 语言程序,使用 for 循环打印空心沙漏星形图案。
#include <stdio.h>
int main()
{
int rows, i, j, k;
printf("Enter Hollow Sandglass Star Pattern Rows = ");
scanf("%d", &rows);
printf("Printing Hollow Sandglass Star Pattern\n");
for (i = 1; i <= rows; i++)
{
for (j = 1; j < i; j++)
{
printf(" ");
}
for (k = i; k <= rows; k++)
{
if (i == 1 || k == i || k == rows)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
for (i = rows - 1; i >= 1; i--)
{
for (j = 1; j < i; j++)
{
printf(" ");
}
for (k = i; k <= rows; k++)
{
if (i == 1 || k == i || k == rows)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}

这个 C 语言示例使用 while 循环打印空心沙漏星形图案。
#include <stdio.h>
int main()
{
int rows, i, j, k;
printf("Enter Hollow Sandglass Star Pattern Rows = ");
scanf("%d", &rows);
printf("Printing Hollow Sandglass Star Pattern\n");
i = 1;
while (i <= rows)
{
j = 1;
while (j < i)
{
printf(" ");
j++;
}
k = i;
while (k <= rows)
{
if (i == 1 || k == i || k == rows)
{
printf("* ");
}
else
{
printf(" ");
}
k++;
}
printf("\n");
i++;
}
i = rows - 1;
while (i >= 1)
{
j = 1;
while (j < i)
{
printf(" ");
j++;
}
k = i;
while (k <= rows)
{
if (i == 1 || k == i || k == rows)
{
printf("* ");
}
else
{
printf(" ");
}
k++;
}
printf("\n");
i--;
}
}
Enter Hollow Sandglass Star Pattern Rows = 11
Printing Hollow Sandglass Star Pattern
* * * * * * * * * * *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* * * * * * * * * * *
这个 C 语言程序使用 do while 循环显示空心沙漏星形图案。
#include <stdio.h>
int main()
{
int rows, i, j, k;
printf("Enter Hollow Sandglass Star Pattern Rows = ");
scanf("%d", &rows);
printf("Printing Hollow Sandglass Star Pattern\n");
i = 1;
do
{
j = 1;
do
{
printf(" ");
} while (j++ <= i);
k = i;
do
{
if (i == 1 || k == i || k == rows)
{
printf("* ");
}
else
{
printf(" ");
}
} while (++k <= rows);
printf("\n");
} while (++i <= rows);
i = rows - 1;
do
{
j = 1;
do
{
printf(" ");
} while (j++ <= i);
k = i;
do
{
if (i == 1 || k == i || k == rows)
{
printf("* ");
}
else
{
printf(" ");
}
} while (++k <= rows);
printf("\n");
} while (--i >= 1);
}
Enter Hollow Sandglass Star Pattern Rows = 14
Printing Hollow Sandglass Star Pattern
* * * * * * * * * * * * * *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* * * * * * * * * * * * * *
这个 C 语言示例代码允许用户输入字符,并打印给定字符的空心沙漏图案。
#include <stdio.h>
void HollowSandglassPattern(int rows, char ch);
int main()
{
int rows;
char ch;
printf("Enter Character for Hollow Sandglass Pattern = ");
scanf("%c", &ch);
printf("Enter Hollow Sandglass Star Pattern Rows = ");
scanf("%d", &rows);
printf("Printing Hollow Sandglass Star Pattern\n");
HollowSandglassPattern(rows, ch);
}
void HollowSandglassPattern(int rows, char ch)
{
int i, j, k;
for (i = 1; i <= rows; i++)
{
for (j = 1; j < i; j++)
{
printf(" ");
}
for (k = i; k <= rows; k++)
{
if (i == 1 || k == i || k == rows)
{
printf("%c ", ch);
}
else
{
printf(" ");
}
}
printf("\n");
}
for (i = rows - 1; i >= 1; i--)
{
for (j = 1; j < i; j++)
{
printf(" ");
}
for (k = i; k <= rows; k++)
{
if (i == 1 || k == i || k == rows)
{
printf("%c ", ch);
}
else
{
printf(" ");
}
}
printf("\n");
}
}
Enter Character for Hollow Sandglass Pattern = $
Enter Hollow Sandglass Star Pattern Rows = 16
Printing Hollow Sandglass Star Pattern
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $