打印空心沙漏星图案的C语言程序

194 阅读1分钟

编写一个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");
}

image.png

这个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
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 
 $                           $ 
  $                         $ 
   $                       $ 
    $                     $ 
     $                   $ 
      $                 $ 
       $               $ 
        $             $ 
         $           $ 
          $         $ 
           $       $ 
            $     $ 
             $   $ 
              $ $ 
               $ 
              $ $ 
             $   $ 
            $     $ 
           $       $ 
          $         $ 
         $           $ 
        $             $ 
       $               $ 
      $                 $ 
     $                   $ 
    $                     $ 
   $                       $ 
  $                         $ 
 $                           $ 
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $