问题描述:编程显示以下图形。共 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 }