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

初学者关于多重循环,空格和星号

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

   *
  ***
 *****
*******

Q1:“*”为啥会自动居中

Q2:代码输出的空格数是4,3,2,1,0.但是图形上看是6,4,2,0,这个是怎么算的空格数

Q3:这两个子循环是先进行空格输出,再星号输出,还是怎么的,有没有大神能给画个框图.....



提问者:慕码人5007861 2015-08-03 19:56

个回答

  • 慕侠7364583
    2015-08-03 20:24:00
    已采纳

    居中是因为每行你自己设置了空格,每行星号到左侧边框的空格数为:4,3,2,1,0。第一个for循环控制行数,第二个for循环控制每行的空格输出,第三个for循环控制每行的星号输出。因为后两个for循环包含在第一个for循环内。

  • 慕侠7364583
    2015-08-03 21:44:04

    从程序看吧,不用揪细节的,因为显示的图形会根据软件版本不同而不同的

  • 慕侠7364583
    2015-08-03 21:21:50

    4,3,2,1。