第五章 循环结构课后反思

一、本章重点、难点

重点:

  • 使用循环结构,编写程序,输出几何图形

  • 用于循环中的break语句和continue语句。

难点:

  • 输出较为复杂的几何图形。

  • 循环结构的嵌套。

  • break语句和continue语句的区别。break是终止循环,而continue是提前进入下一循环。

二、课内反思

1、所学内容

(1)for语句、while语句、do-while语句、break语句和continue语句。

(2)使用循环结构输出指定几何图形。

(3)控制计算机自动生成二元算数表达式。

2、我的代码

a

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

 以此类推,那么是不是可以不限行数,我想输出多少行,就能输出多少行,实践之后,我发现只要再加一个变量就可以啦。

代码如下:

#include<stdio.h>
main()
{
    int i,j,n;
    scanf("%d",&n);
    for(i=1;j<=n;i++)
    {
        for(j=1;j<=i;j++)
            printf("*");
        printf("
");
    }
}

b

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

#include<stdio.h>
main()
{
    int i,j,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=i;j<=n;j++)
            printf("*");
        printf("
");
    }
}

c

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

#include<stdio.h>
main()
{
    int i,j,k,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=(n-i);j++)
            printf(" ");
        for(k=1;k<=i;k++)
            printf("*");
        printf("
");
    }
}

d

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

#include<stdio.h>
main()
{
    int i,j,k,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<i;j++)
            printf(" ");
        for(k=i;k<=n;k++)
            printf("*");
        printf("
");
    }
}

e

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

#include<stdio.h>
main()
{
    int i,j,k,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=i;j<n;j++)
            printf(" ");
        for(k=1;k<=(2*i-1);k++)
            printf("*");
        printf("
");
    }
}

f

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

#include<stdio.h>
main()
{
    int i,j,k,n,m;
    scanf("%d",&m);
    n=2*m-1;
    for(i=1;i<=m;i++)
    {
        for(j=1;j<i;j++)
            printf(" ");
        for(k=i;k<=(n-i+1);k++)
            printf("*");
        printf("
");
    }
}

三、课后习题

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

 思路:

对此,我先将该图案分割成两部分,上面五行,下面四行。上面五行第一行一个空格,第二行两个空格……以此类推,可以得出空格与行数的规律,星号每行比前一行突出一个,因此可以得出前五行代码。后面四行与上面的相反,第一行四个空格,第二行三个空格……,星号每一行比上一行缩进一个,依次类推,可以得出下面四行代码。

流程图:

四、课后小结

        通过本章学习,我可以知道规则图形都可以举一反三的按照上面来,较复杂的图形可以将图形分为几部分,化繁为简。希望可以更多接触算法,感觉画流程图有点困难。通过这几个图案的代码,对学习C语言有了些感觉。我想,后面可能会比之前简单。

原文地址:https://www.cnblogs.com/x-y-f/p/10701937.html