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

求大佬解释

#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;
}

怎么运行的?


正在回答

5 回答

就是一行一行输出空格或*。仔细观察。空格可以看出逐行减少,*逐行增加。那么这两个东西是跟着行数i变化的。空格可以看出每加一行少一个,第一行最多,为3个。那么可以这样写 for(  j=i ;  j<5 ; j-- ) 。*每行都增加。下一行比上一行多两个,很容易看出是2n-1的关系,所以可以这样写for( k=1 ;  k<2*i-1;  k++ ) 。怎么样理解没?

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

qq_慕丝9066459 提问者

j++
2019-09-10 回复 有任何疑惑可以回复我~
#2

慕设计3381282 回复 qq_慕丝9066459 提问者

为什么呢
2019-09-20 回复 有任何疑惑可以回复我~

为什么j=i?

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

为什么j=1,j<5,j++.?我看不明白

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

同问,为什么要k<i*2-1?

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

慕桂英0282873

*的递增规则是1 3 5 而行数是1 2 3 能看出关系是i*2-1
2019-09-11 回复 有任何疑惑可以回复我~

同问,这块我也没看懂

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926204    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

求大佬解释

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信