首先明确做题整体思路:
- 分为两部分:上半部分和下半部分。
- 上下部分又可划分为打印空格和'*'。
- 循环由空格个数和'*'个数来决定j(循环几次)。
-
根据循环行数i找出规律。
#include<stdio.h> #include<stdlib.h> int main() { int i = 0; int j = 0; int line = 0; scanf("%d",&line); //打印上半部分 for(i = 0;i < line;i++) { //打印空格 for(j = 0;j < line - i - 1;j++) { printf(" "); } //打印* for(j = 0;j < 2*i + 1;j++) { printf("*"); } printf("\n"); } //打印下半部分 for(i = 0;i < line - 1;i++) { //打印空格 for(j = 0;j<=i;j++) { printf(" "); } //打印* for(j = 0;j < 2*(line - 1 -i) - 1;j++) { printf("*"); } printf("\n"); } system("pause"); return 0; }