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

    ---恢复内容开始---

    本章重点讲了一下for循环语句,以及还有其他循环语句while、do_while,在第五章中末尾的7个题目中,要求我们自己编写代码来实现指定图形,我随机挑选了一个图形,就第四个吧。

    书中要求编写的图形是这个,看到这个图形,就让我想到了书中例题example5_3a.c~example5_3f.c中的e图和f图的组合。然后思路就是编写一个代码,使例题中的两个图形代码组合起来便可得到该图形。先编好上面的倒三角形图形,代码如下:

    #include<stdio.h>
    int main()
    {
        int i,j,k;
        for(i=1;i<=5;i++)
        {
            for(j=1;j<i;j++)
            printf(" ");
            for(k=1;k<=(11-2*i);k++)
            printf("*");
            printf("
    ");
            
        }
        
    }

    依旧是i控制行,j控制空格,k控制列,行和空格没什么问题,比较好控制,重点是*号,在这里面是有一个算法k<=(11-2*i),正好是一次每行输出*号个数9、7、5、3、1;

    编辑运行的结果如下

    接下来就是下半部分了,下半部分的代码也是按部就班,代码如下

    难点也是控制列,列的 算法为k<=(2*i+1),即开头第一行为3个*。

    最后上下两部分代码合并,就完成了。代码如下:

    #include<stdio.h>
    int main()
    {
        int i,j,k;
        for(i=1;i<=5;i++)
        {
            for(j=1;j<i;j++)
            printf(" ");
            for(k=1;k<=(11-2*i);k++)
            printf("*");
            printf("
    ");
            
        }
        for(i=1;i<=4;i++)
        {
            for(j=1;j<(5-i);j++)
            printf(" ");
            for(k=1;k<=(2*i+1);k++)
            printf("*");
            printf("
    ");
        }
    }

    运行结果如下:

     课后反思:

    这次课程学完for语句,让我们掌握了C语言循环结构的神奇之处,当然,这个也并不是这么简单的,一开始学还不知道这个怎么运行,后来多看书,自己上机操作后,才渐渐熟悉,知道了算法才是真正的核心。

    ---恢复内容结束---

  • 相关阅读:
    HDU-1702-ACboy needs your help again!(Stack)
    HDU1276-士兵队列训练问题 (Queue)
    HDU1285-确定比赛名次(拓扑+优先队列)
    The Preliminary Contest for ICPC Asia Nanjing 2019
    拓扑排序板子 hihocoder-1174
    BZOJ1066 [SCOI2007]蜥蜴
    BZOJ3888 [Usaco2015 Jan]Stampede
    BZOJ1718 [Usaco2006 Jan] Redundant Paths 分离的路径
    BZOJ1112 [POI2008]砖块Klo
    BZOJ1031 [JSOI2007]字符加密Cipher
  • 原文地址:https://www.cnblogs.com/shixian/p/10700980.html
Copyright © 2011-2022 走看看