Emmm…接下来,我将上页的“乘法口诀表”的代码写下来,看看和你之前思考的逻辑是否一致,若不一致自行测试一下。
“乘法口诀表”代码如下:
#include<stdio.h> int main() { for(int i=1;i<10;i++) { for(int j=1;j<=i;j++) printf(" %dx%d=%d",j,i,i*j); printf("\n"); } return 0; }
调试截图如下:大家有木有发现原来是对齐的,不过到了2×4=8之后就没有对齐,
所以,为了能够对齐,显示的比较美观,我们可以这样修改代码:
将第七行的最后一个“%d”修改为“%2d”
#include<stdio.h> int main() { for(int i=1;i<10;i++) { for(int j=1;j<=i;j++) printf(" %dx%d=%2d",j,i,i*j); printf("\n"); } return 0; }
调试截图如下:这样修改就可以保证个位和下面的个位一一对应了,显现的美观,
嵌套循环不仅可以这样用,也可以输出我们想要的各种形状,比如我想让程序输出一个菱形,那么我们先回思考菱形什么样子,可以拆分成什么,有何特征,我们应该如何去写,
思考完之后,我们就要开始动手了,代码如下:先分析菱形是由上下两个三角形组成,然后我们只需要输出上方三角形就可以了,那么上面三角形是由 空格直角三角形+面向左侧直角三角形+面向右侧直角三角形
大家可以看到,代码也分为两大部分,上部分,嵌套了三重循环,第一重 空格直角三角形,第二重 直角三角形 第三重 与第二重相反的直角三角形
#include<stdio.h> int main() { for(int i=1;i<=20;i++) { for(int j=20;j>=i;j--) { printf(" "); } for(int jl=1;jl<=i;jl++) { printf("*"); } for(int il=1;il<=(i-1);il++) { printf("*"); } printf("\n"); } for(int i=1;i<=20;i++) { for(int j=1;j<=i;j++) { printf(" "); } for(int jl=20;jl>=i;jl--) { printf("*"); } for(int il=20;il>=(i+1);il--) { printf("*"); } printf("\n"); } return 0; }
调试截图如下:其实呢,最外层控制的是“行”有多少“行”决定多少“行”(因为有“printf(“\n”);”)
内层,控制样式,也就是控制多少“列”,每个“列”都显示什么,都被安排的明明白白,(严肃,不要笑,虽然我的菱形有点…但我们要的是理解嵌套循环的含义)
评论抢沙发