第五章 循环结构课后反思

第五章 循环结构课后反思

课后练习:

第一个练习的代码如下:
#include"stdio.h"
main()
{
	int i,j,k;                                 //定义整形变量 
	for(i=1;i<=9;i++)                          //用i定义总行数 
	{
		if(i<=5)                               //使用if语句判断i是否大于等于5 
		{
			for(j=5-i;j>0;j--)                 //使用j循环输出图案前的空格 
			{
				printf(" ");
			}
			for(k=i*2-1;k>0;k--)               //使用k循环输出图案* 
			{
				printf("*");
			}
			printf("\n");                      //在执行完一遍循环后换行 
		}
		else
		{
			for(j=i-5;j>0;j--)                 //在i大于5时,j循环输出空格 
			{
				printf(" ");
			}
			for(k=(10-i)*2-1;k>0;k--)          //i》5时,k循环输出图案* 
			{
				printf("*");
			}
			printf("\n");                      //在执行完一遍循环后换行 
		}
	}
}
 
第一个练习的图案如下:
![](https://img2018.cnblogs.com/blog/1616360/201904/1616360-20190414122947311-193568516.png)
代码解析:第一次练习的代码,主要是靠循环语句实现图案的输出,通过将整个图案的分块来分别实现相应的图案安输出,
再进行组合,并且使用if语句来辅助判断不同的模块,虽然增加了代码的复杂性,但是可以使思路更加清晰。
实验难点与反思:我认为实验中的难点就在于将图案进行分块,在图案分块之后,就可以分开实现相应的图案了,难度会
降低很多的。对于图案的分析很重要,其次,循环语句的正确使用也很重要。
前六个实验均可用同一套路实现,在此不多加描述。
第七个课后练习代码如下:
#include"stdio.h"
main()
{
	int i,j,k,z;                                       //定义整形变量 
	for(i=1;i<=11;i++)                                 //使用i确定总行数 
	{
		if(i<=5)                                       //判断i是否小于等于5来区别输出图案,分块输出 
		{
			for(j=1;j<=20-4*i;j++)                     //使用j输出第一部分的空格 
			{
				printf(" ");
			}
			for(k=21-4*i;k<=13+4*i;k=k+4)              //使用k输出第二部分的*与空格相间的图案 
			{
				printf("*");
				printf("   ");
			}
			printf("\n");                              //执行完一遍循环后换行 
		}
		else
		{
			if(i<=7)                                   //再判断i是否小于等于7来再次将图案分块 
			{
				for(k=1;k<=33;k=k+4)                   //使用k输出该模块的图案 
				{
					printf("*");
					printf("   ");
				}
				printf("\n");                          //执行完一遍循环后换行 
			} 
			else
			{
				for(j=0;j<=16-(i-7)*4;j=j+4)           //在i大于7时,使用j输出第一部分的图案 
				{
					printf("*");
					printf("   ");
				}
				for(k=1;k<=1+(i-8)*8;k++)              //在i大于7时,使用k输出第二部分的图案 
				{
					printf(" ");
				}
				for(z=17+(i-7)*4;z<=33;z=z+4)          //在i大于7时,使用z输出第三部分的图案 
				{
					printf("   ");
					printf("*");
				}
				printf("\n");                          //执行完一次循环后换行 
			} 
		} 
	}
}
第七个课后练习图案如下:
![](https://img2018.cnblogs.com/blog/1616360/201904/1616360-20190414122959274-1389463245.png)
代码解析:第七次练习的代码依然是主要依靠for语句的循环来输出图案,将整个图案进行分块,分成六块,再进行拼接即可
得到需要输出的图案。
实验难点与反思:第七次练习的主要难点是将图案分为六块,并且每一块的输出都要进行分析与计算,会显得比较繁杂,很
可能会出错。我们应该要耐心地进行代码的分析,不要着急,一步一步来。
实验总体感悟:我觉得循环语句是目前学到的最具有灵活性的语句,可以实现很多功能,但同时也会有更多需要注意的点在
里面,我认为,学习循环结构,最重要的是要有耐心,并且细心,很多时候一个细节可能导致整个代码的错误,很容易使人心烦
气燥,所以我会尽我所能地去学好循环结构这一节课的。
posted @ 2019-04-14 12:30  袁爷灬oc  阅读(131)  评论(0编辑  收藏  举报