第五章 循环结构课后反思
先看一下要做出来的效果
1.上下对称,可以分为两个部分利用for循环把上面做出来,代码如下
#include<stdio.h> main() { int i,j,k; for(i=1;i<=5;i++) { for(j=i;j<=4;j++) printf(" "); for(k=1;k<=7;k++) printf("*"); printf("\n"); } }
运行结果
此处为平行四边形,所以上述代码中k的值要取定值,
2.下半部分代码如下
#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"); } }
运行结果
此处和上述一样k要取定值
直接合成在一起代码如下
#include<stdio.h> main() { int i,j,k; for(i=1;i<=5;i++) { for(j=i;j<=4;j++) printf(" "); for(k=1;k<=7;k++) printf("*"); printf("\n"); }//上面半部分 for(i=1;i<=5;i++) { for(j=1;j<=i;j++) printf(" "); for(k=1;k<=7;k++) printf("*"); printf("\n"); }//下面半部分 }
但是此处的运行结果是
与要做出来的效果相比较会发现多了一行,所以可以在第二部分循环中行数减少一行
即
#include<stdio.h> main() { int i,j,k; for(i=1;i<=5;i++) { for(j=i;j<=4;j++) printf(" "); for(k=1;k<=7;k++) printf("*"); printf("\n"); }//上面半部分 for(i=1;i<=4;i++) { for(j=1;j<=i;j++) printf(" "); for(k=1;k<=7;k++) printf("*"); printf("\n"); }//下面半部分 }
运行结果为
这就是最后与运行的正确结果