问答详情
源自:4-12 循环结构之多重循环

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

http://img.mukewang.com/55d722b9000143dc02560320.jpg

以上代码实现:

http://img.mukewang.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;
}


求解释。

提问者:黑巫 2015-08-21 21:13

个回答

  • Q__Q
    2015-08-22 12:06:00
    已采纳

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

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

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

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

    是否明白了?

  • qq_随心所欲_2
    2015-09-10 18:05:39

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