zoukankan      html  css  js  c++  java
  • 第五章 循环结构课后反思

    第五章 循环结构课后反思

    课后练习:

    第一个练习的代码如下:
    #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("
    ");                      //在执行完一遍循环后换行 
    		}
    		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("
    ");                      //在执行完一遍循环后换行 
    		}
    	}
    }
     
    
    第一个练习的图案如下:
    ![](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("
    ");                              //执行完一遍循环后换行 
    		}
    		else
    		{
    			if(i<=7)                                   //再判断i是否小于等于7来再次将图案分块 
    			{
    				for(k=1;k<=33;k=k+4)                   //使用k输出该模块的图案 
    				{
    					printf("*");
    					printf("   ");
    				}
    				printf("
    ");                          //执行完一遍循环后换行 
    			} 
    			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("
    ");                          //执行完一次循环后换行 
    			} 
    		} 
    	}
    }
    
    第七个课后练习图案如下:
    ![](https://img2018.cnblogs.com/blog/1616360/201904/1616360-20190414122959274-1389463245.png)
    代码解析:第七次练习的代码依然是主要依靠for语句的循环来输出图案,将整个图案进行分块,分成六块,再进行拼接即可
    得到需要输出的图案。
    实验难点与反思:第七次练习的主要难点是将图案分为六块,并且每一块的输出都要进行分析与计算,会显得比较繁杂,很
    可能会出错。我们应该要耐心地进行代码的分析,不要着急,一步一步来。
    实验总体感悟:我觉得循环语句是目前学到的最具有灵活性的语句,可以实现很多功能,但同时也会有更多需要注意的点在
    里面,我认为,学习循环结构,最重要的是要有耐心,并且细心,很多时候一个细节可能导致整个代码的错误,很容易使人心烦
    气燥,所以我会尽我所能地去学好循环结构这一节课的。
  • 相关阅读:
    CSS实现小三角小技巧
    Javascript原型继承 __proto__
    99乘法表
    函数式编程之纯函数
    函数式编程 本质(笔记)转载
    函数式编程之柯里化(curry)
    Javascript-常用字符串数组操作
    第十章
    第九章
    第八章读后感
  • 原文地址:https://www.cnblogs.com/ylpforever/p/10704662.html
Copyright © 2011-2022 走看看