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

这个代码我还是不懂,有大神给我完整地解释一下吗QWQ

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

正在回答

2 回答

    *                    //先输出4个空格,再输出1个*,最后回车换行

   ***                //输出3个空格,再输出3个*,换行

  *****            //输出2个空格,再输出5个*,换行

 *******        //输出1个空格,再输出7个*,换行

    代码能理解吗?只要前面学的扎实,就能看懂


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

qq_慕侠3107278

请问大神如何点空格数
2018-12-10 回复 有任何疑惑可以回复我~
#2

qq_慕娘4133401 提问者

谢谢!
2018-12-12 回复 有任何疑惑可以回复我~

先是i=1然后第一个子循环循环四次出现四个空格,*号是行数乘二减一,i=1所以*有2*1-1=1

第二次循环i=2,第一个子循环循环三次,*号=2*2-1=3

往后以此类推

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

qq_慕娘4133401 提问者

为什么第一个子循环会循环四次?
2018-12-12 回复 有任何疑惑可以回复我~
#2

慕丝4030038 回复 qq_慕娘4133401 提问者

他是根据图形的排列循环的,循环出来看好是一个三角形
2018-12-19 回复 有任何疑惑可以回复我~
#3

慕码人3084263 回复 qq_慕娘4133401 提问者

你把i=1带入 for(j=i ;j<5 ;j++ ) { printf(" "); } 这里面,一直到他跳出循环,因为j<5,所以要进行四次才能跳出,刚好是四个空
2018-12-22 回复 有任何疑惑可以回复我~
#4

慕婉清8314594 回复 qq_慕娘4133401 提问者

因为小于5是运行条件,等于5时不满足条件跳出循环,所以总共循环四次
2018-12-26 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

这个代码我还是不懂,有大神给我完整地解释一下吗QWQ

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