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

不是很懂这个程序,请问有大佬路过给我讲解一下么?

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");     //每次循环换行
    }

正在回答

1 回答

*****代码一共两层循环,第一层控制行数,第二层控制输出。

第一层循环是控制行数,如当i=1,就是进入第一行进行输出。

*****进入第一层循环后,开始第二层循环。

首先是输出空格,每行空格数递减,第一行需要4个空格,第二行需要3个空格,以此类推,所以令j=i,随着i的递增,空格循环次数减小。

当空格输出完毕,则开始输出*,当i=1,k的值为1,由于k初值为0,所以会循环1次,也就是输出1个*,到这里*循环结束,跳出for循环,再执行"\n"换行。

到这里i=1的循环结束,然后开始i=2的循环。

*****不知道看不看得懂啊。。。。。。

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

Unspx_owner 提问者

谢谢,之前不是很懂空格和*的输出多少。
2018-01-27 回复 有任何疑惑可以回复我~
#2

Unspx_owner 提问者

现在是懂了。
2018-01-27 回复 有任何疑惑可以回复我~
#3

一宿

第一行为什么输出4个空格?
2018-02-04 回复 有任何疑惑可以回复我~
#4

学霸居 回复 一宿

我也不懂 老哥你现在会了吗 会的话教我一下
2018-03-06 回复 有任何疑惑可以回复我~
#5

慕标7134229

那为什么要先打空格不先打*呢。。。我也不是很明白这个
2018-03-12 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

不是很懂这个程序,请问有大佬路过给我讲解一下么?

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