循环结构课后反思

课后思考题的第一个是一个由“*”号构成的菱形,图像如下:

代码如下:

 1 #include<stdio.h>
 2 main()
 3 {
 4     int i,j,k;
 5     for(i=1;i<=5;i++)
 6     {
 7         for(j=i;j<5;j++)
 8             printf(" ");
 9         for(k=1;k<=(2*i-1);k++)
10             printf("*");
11         printf("\n");
12     }
13     for(i=6;i<=9;i++)
14     {
15         for(j=1;j<=(i-5);j++)
16             printf(" ");
17         for(k=1;k<=19-2*i;k++)
18             printf("*");
19         printf("\n");
20     }
21  } 

可将此图形分为两部分来考虑,上部分是由5行“*”号构成的三角形,下部分是由4行“*”号构成的三角形,两个三角形一组合便成了图示的菱形。

上部分是正的三角形,是由少到多递增的;而下部分是倒的三角形,是由多到少递减的。

课后思考题的第二个是一个由“*”号构成的三角形,图像如下:

代码如下:

 1 #include<stdio.h>
 2 main()
 3 {
 4     int i,j;
 5     for(i=1;i<=5;i++)
 6     {
 7         for(j=1;j<=2*i-1;j++)
 8             printf("*");
 9         printf("\n");
10     }
11     for(i=6;i<=9;i++)
12     {
13         for(j=1;j<=19-2*i;j++)
14             printf("*");
15         printf("\n");
16     }
17 } 

这里只需要用到两个变量,因为输出是从左边开始的,左边没有空格,所以不需要去定义空格变量。这个三角形也可以拆分成两个三角形,一个正的三角形,一个倒的三角形。将其分为俩部分来输出。

课后思考题的第三个是第二题的镜像三角形,图像如下:

代码如下:

 1 #include<stdio.h>
 2 main()
 3 {
 4     int i,j,k;
 5     for(i=1;i<=5;i++)
 6     {
 7         for(j=1;j<=10-2*i;j++)
 8             printf(" ");
 9         for(k=1;k<=2*i-1;k++)
10             printf("*");
11         printf("\n");
12     }
13     for(i=6;i<=9;i++)
14     {
15         for(j=1;j<=2*i-10;j++)
16             printf(" ");
17         for(k=1;k<=19-2*i;k++)
18             printf("*");
19         printf("\n");        
20     }
21 } 

这个比第二题多了一个空格变量,方法都差不多,多了一个空格变量就要多考虑一点,比第二题稍难

总结:遇到不会的或者看不懂的图案,就把此图案分解成自己能看懂的,一步一步的来做,要把难的题目分解,变成容易的,毕竟这些东西都是由最基础的演变组成而来的。

 

posted @ 2019-04-14 21:42  微风未起  阅读(226)  评论(0编辑  收藏  举报