首先,复习一下for循环的运行过程:
问题描述:https://blog.csdn.net/sxhelijian/article/details/44158317
输出小星星(5)
1 #include "stdafx.h" 2 3 int main() 4 { 5 int x, x1; 6 scanf_s("%d", &x); 7 x1 = x; 8 9 //输出第1行(特殊行)10 for (int i = 0; i < x - 1; i++)11 {12 printf(" ");13 }14 printf("*");15 printf("\n");16 17 //输出第2至x-1行18 for (int i = 1; i < x - 1; i++)19 {20 //输出i行第1组空格21 for (int i = 1; i < x1 -1 ; i++)22 {23 printf(" ");24 }25 x1--;26 27 //输出i行第1个*28 printf("*");29 30 //输出i行第2组空格31 for (int j = 1; j <= 2*i - 1 ; j++)32 {33 printf(" ");34 }35 36 //输出i行第2个*37 printf("*");38 39 //换行40 printf("\n");41 42 }43 44 //输出第x行(特殊行)45 for (int i = 0; i < 2*x - 1; i++)46 {47 printf("*");48 }49 printf("\n");50 51 return 0;52 }
结果
输出小星星(6)
1 int main() 2 { 3 int x, x1, x2; 4 scanf_s("%d", &x); 5 x1 = x; 6 x2 = x - 1; 7 8 //输入等腰三角形上半部(含中线) 9 for (int i = 1; i <= x; i++)10 {11 //输出i行空格部分12 for (int i = 0; i < x1 - 1; i++)13 {14 printf(" ");15 }16 x1--;17 18 //输出i行*部分19 for (int j = 0; j < 2*i - 1; j++)20 {21 printf("*");22 }23 24 //换行25 printf("\n");26 }27 28 //输入等腰三角形下半部29 for (int i = 1; i <= x - 1; i++)30 {31 //输出i行空格部分32 for (int j = 0; j < i; j++)33 {34 printf(" ");35 }36 37 //输出i行*部分38 for (int i = 0; i < 2*x2 - 1; i++)39 {40 printf("*");41 }42 x2--;43 44 //换行45 printf("\n");46 }47 48 49 return 0;50 }
结果
感想:
写“伪代码”可以增加code的可读性;
=