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

用for语句实现C语言的图形

http://img1.sycdn.imooc.com//55d722b9000143dc02560320.jpg

以上代码实现:

http://img1.sycdn.imooc.com//55d722f1000182dc00670067.jpg

i为行,j为空格,k为*号。

我觉得应该是k+=2 (第11行),因为每行加2。j的初始值为3,因为第一行是3,然后大于0,每一行减1,所以j--,但是错误,图上是j++,为何?

我的代码是:

#include <stdio.h>
int main()
{
    int i, j, k;
    for(i=1; i<5; i++)
    {
      
        for(j=3;j>0;j--)  
        {
            printf(" ");    //输出空格
        }
      
        for(k=1;k<2*i-1;k+=2) 
        {
            printf("*");   //每行输出的*号
        }
        printf("\n");     //每次循环换行
    }
    return 0;
}


求解释。

正在回答

2 回答

你仔细阅读此程序代码,j的循环每次都是输出三个空格

i=1:ooo(三个空格),此时k<1,所以只输出一个*

i=2:ooo(三个空格),此时k<3,所以有两个*

i=3:ooo(三个空格),此时k<5,所以有三个*

是否明白了?

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

黑巫 提问者

非常感谢!
2015-08-22 回复 有任何疑惑可以回复我~
#2

_Melody__0

不明白耶。。。为什么j的每次循环都是三个空格?也不明白为什么j要等于i。。拜托麻烦你了
2015-10-28 回复 有任何疑惑可以回复我~

为什么星号会在空格中间啊

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

举报

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

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

进入课程

用for语句实现C语言的图形

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