为了账号安全,请及时绑定邮箱和手机立即绑定

为什么是 金字塔

#include <stdio.h>

int main()

{

    int i, j, k;

    for(i=1; i<5; i++)

    {

        /* 观察每行的空格数量,补全循环条件 */

        for(j=i;j<5;j++)  

        {

            printf(" ");    //输出空格

        }

        /* 观察每行*号的数量,补全循环条件 */

        for(k=0;k<2*i-1;k++) 

        {

            printf("*");   //每行输出的*号

        }

        printf("\n");     //每次循环换行

    }

    return 0;

}

为什么是金字塔 而不是  

 ..............................................*

 ..............................................* * *

 ..............................................* * * * *

 ..............................................* * * * * * *

http://img1.sycdn.imooc.com//57c6f477000155af03660159.jpg

正在回答

6 回答

(j=i;j<5;j++)

第一行:J和I一样大小初始为1 ,因为J<5,所以还可以进行循环  ,然后J++;之后J就被赋值为2,还是J<5继续J++;......直到J不满足J<5。

到下一个for执行*,for的*数如上方法。

父循环一次,子循环需要全部执行完,直到跳出循环;所以下面的子循环的两个for要全部循环完,才进行下一个父循环。

第二行:J初始就为2了,如第一行求,来进行第二行的空格和*的数量。

....................


0 回复 有任何疑惑可以回复我~

你如果把第一个for后面的j=i换成j=1,你就会得到你问的那个直角三角形

0 回复 有任何疑惑可以回复我~
#1

慕粉3971768

请问为什么呢?
2016-09-17 回复 有任何疑惑可以回复我~

我看错了   是这样的  

0 回复 有任何疑惑可以回复我~

接3>      i=i+1=3

j=3

j=3<5成立,输出空格

j=j+1

j=4<5输出空格

j=j+1

j=5=5不输出空格   

执行for下一个语句

0<3*2-1

输出一个*

k=k+1

k=1<3*2-1=5输出一个*

k=2<5输出一个*

k=3输出一个*

k=4输出一个*

k=5不满足  结束子for循环

 同理  i=4依上运行

当i=5时呢?不成立的哇   它只会输出金字塔的一半                        


0 回复 有任何疑惑可以回复我~

1> i = 1   i<5 成立

1 j=1  1<5  成立

1 输出一个空格

1 j+1=2

2   2<5  成立

2   输出一个空格

2   j=2+1=3

3   3<5  成立

3   输出一个空格

3   j=3+1=4

4   4<5  成立

4   输出一个空格 

4   j=4+1=5

5   5<5  不成立 执行下一个循环

6   k=0  0< 2x1-1 成立

6   输出一个 *

6   k= 0+1=1

7   1<2x1-1  不成立 执行下一个语句

7   输出换行符   换行

7   i=i+1= 2

2>   i=2<5  成立

1   j=2 2<5 成立

1   输出一个空格

1   j=2+1=3

2   3<5 成立

2   输出一个空格

2   j= 3+1=4

3   4<5 成立

3   输出一个空格

3   j= 4+1=5

4   5<5 不成立  执行下一个循环

5   k=0  0< 2x2-1 成立

5   输出一个 *

5   k = 0+1 =1

6   k=1 < 2x2-1  成立                        以此类推,就完全看懂程序了


0 回复 有任何疑惑可以回复我~

看for循环内部的第一个for循环,他就是输出空格用的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么是 金字塔

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号