打印由 * 号组成的菱形

问题描述:编程显示以下图形。共 n 行, n 由键盘键入。

 

     *

   ***

  *****

 *******

*********

思路:

对于有规律的几何图案的输出,可以用循环结构来实现。

此类程序的要点是 需要找出每行左边的空格,星号 *,和行号 i ,列号 j ,及当前行号 n 的关系。

算法中,变量 n 表示总行数,变量 i 表示行号,第 i 行左边的空格数为 n-i;

第 i 行的星号 * 数为 2 * i - 1;

变量 j 表示列号,用于控制每行输出空格和星号 * 的个数。

用循环嵌套处理行列之间的关系,外层循环输出一行,两个内存循环分别输出空格和星号 * 。

需要注意每行数据输出后换行。

 

代码(c语言,visual studio2019)

 1 #include <stdio.h>
 2 #define _CRT_SECURE_NO_WARNINGS
 3 
 4 
 5 int main()
 6 {
 7     int i, j, n;
 8     printf("Input n:  ");
 9     scanf_s("%d", &n);
10     for (int i = 1; i <= n; i++)
11     {
12         for (int j = 1; j <= n-i; j++)                        //输出图案左边的空格
13         {
14             printf(" ");
15         }
16         for (int j = 1; j <= 2*i-1; j++)                     //输出星号 *
17         {
18             printf("*");
19         }
20         printf("
");
21     }
22     return 0;
23 }

 

原文地址:https://www.cnblogs.com/hanyu1995/p/13423091.html