一、本章重点、难点
重点:
-
使用循环结构,编写程序,输出几何图形
-
用于循环中的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("\n"); } }
以此类推,那么是不是可以不限行数,我想输出多少行,就能输出多少行,实践之后,我发现只要再加一个变量就可以啦。
代码如下:
#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("\n"); } }
b
#include<stdio.h> main() { int i,j; for(i=1;i<=8;i++) { for(j=i;j<=8;j++) printf("*"); printf("\n"); } }
#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("\n"); } }
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("\n"); } }
#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("\n"); } }
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("\n"); } }
#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("\n"); } }
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("\n"); } }
#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("\n"); } }
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("\n"); } }
#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("\n"); } }
三、课后习题
#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("\n");
}
for(i=1;i<=4;i++)
{
for(j=i;j<=4;j++)
printf(" ");
for(k=1;k<=7;k++)
printf("*");
printf("\n");
}
}
思路:
对此,我先将该图案分割成两部分,上面五行,下面四行。上面五行第一行一个空格,第二行两个空格……以此类推,可以得出空格与行数的规律,星号每行比前一行突出一个,因此可以得出前五行代码。后面四行与上面的相反,第一行四个空格,第二行三个空格……,星号每一行比上一行缩进一个,依次类推,可以得出下面四行代码。
流程图:
四、课后小结
通过本章学习,我可以知道规则图形都可以举一反三的按照上面来,较复杂的图形可以将图形分为几部分,化繁为简。希望可以更多接触算法,感觉画流程图有点困难。通过这几个图案的代码,对学习C语言有了些感觉。我想,后面可能会比之前简单。