思路:先在纸上画出上下三角,找到行数,三角个数,空白个数之间的规律。
如图所示,要想打印出一个上三角,应该先从每一行开始打印,从第一行开始,先打印6个空白,在打印一个*;第二行,先打印5个空白,在打印一个*,依次类推,直到上三角打印完全,下三角一样,都是需要到行与*与空白之间的联系。
1 #include<stdio.h> 2 int main() 3 { 4 int i, j, n; 5 scanf("%d",&n); 6 //上三角: 7 //每循环一次打印一行的星和空白 8 for (i = 1;i < n+1;i++)//打印行数 9 { 10 for (j = 0;j > i - n;j--) 11 { 12 printf(" ");//打印上三角空白 13 } 14 for (j = 0;j < 2 * i - 1;j++) 15 { 16 printf("*");//打印上三角* 17 } 18 printf(" ");//开始下三角前换行 19 } 20 //打印下三角 21 //每循环一次打印一行的星和空白 22 for (i = 1;i < n;i++) 23 { 24 for (j = 0;j < i ;j++) 25 { 26 printf(" ");//打印下三角空白 27 } 28 for (j = 0;j < 2 * (n - i)-1;j++) 29 { 30 printf("*");//打印下三角* 31 } 32 printf(" "); 33 }