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

空格不对劲啊

既然   每行输出的空格数等于(最后一行*号数减去当前行的*号数)除2

但是他的参考代码,第一次循环的空格有4个,第二次3个

而第一行1个星,最后一行7星,(7-1)/2=3空格

   第二行3星,(7-3)/2=2空格

为什么出现这种情况呢 

正在回答

2 回答

我们通常思维是你这样的,画一个图形需要对称。但是这个输出是从左到右的文本,又由于是正三角形,左右对称,所以只要关心左侧空格的占位,不用关心右侧的空格数量。
可以把空格替换成其他字符串帮助理解。
这里第一行有四个空格是为了满足第四行有一个空格,不然其实第一行3个空格就能实现了。
http://img1.sycdn.imooc.com//5df9d795000156e112260434.jpg

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

#include <stdio.h>

int main()

{

    int i, j, k;

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

    {

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

        for(    i=1 ;  i<=4-i ;  i--  )  

        {

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

        }

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

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

        {

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

        }

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

    }

    return 0;

}


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

举报

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

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

进入课程

空格不对劲啊

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