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

在循环结构之多重循环中为什么要用 for(k=0;k<2*i-1;k++) 这个

 for(k=0;k<2*i-1;k++) 是什么意思啊

提问者:qq_不离_03379095 2016-07-22 16:27

个回答

  • 自学试试先
    2016-07-22 17:20:09
    已采纳

    我来尝试解释你的这个问题吧,首先我们先观察一下代码

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

    }

    我们发现 i 是控制输出换行的,k是控制输出*号的

    然后我们看一下要求我们的代码实现的效果如下:

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

    这时候我们观察一下“行数i”与“*号k”之间是不是存在函数关系

    第一行,即i=1 时 

    *号为一个 即k=1

    。。。i=2时

    。。。k=3

    。。。i=3时

    。。。k=5

    。。。i=4时

    。。。k=7

    这时候我们发现k总是比i的2倍少1,于是我们换成表达式即为;

    k=2i-1

    这时候当子循环的起始数值k定义为0,当父循环i的值为1时我们的子循环也能执行一次。这就是为什么子循环是

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

    纯手打,望采纳!!!