第五章 循环结构课后反思

先看一下要做出来的效果

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("
");
        
    }
}

运行结果

此处为平行四边形,所以上述代码中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("
");
    }
}

运行结果

此处和上述一样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("
");
    }//上面半部分 
        for(i=1;i<=5;i++)
    {
        for(j=1;j<=i;j++)
        printf(" ");
        
        for(k=1;k<=7;k++)
        printf("*");
        printf("
");
    }//下面半部分 
}

但是此处的运行结果是

与要做出来的效果相比较会发现多了一行,所以可以在第二部分循环中行数减少一行

#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("
");
    }//上面半部分 
        for(i=1;i<=4;i++)
    {
        for(j=1;j<=i;j++)
        printf(" ");
        
        for(k=1;k<=7;k++)
        printf("*");
        printf("
");
    }//下面半部分 
}

运行结果为

这就是最后与运行的正确结果

原文地址:https://www.cnblogs.com/ljh26/p/10700486.html