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

这个程序怎么运行啊

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

正在回答

4 回答

#include <stdio.h>
int main()
{
    int i, j, k;                      //定义三个int类型的数
    for(i=1; i<5; i++)                //外循环i初始值1,循环5次
    { 
/* 观察每行的空格数量,补全循环条件 */
        for(    j=i ;  j<5 ;  j++ )  //内循环1,j=i表示j受i约束,即第一次循环j=1,第二次j=2 ,... 
        {
            printf(" ");  //输出空格 //j=1时输1个空格整个(外)循环结束4个,j=2时整个(外)循环结束3个
            
        }
        //printf(j);
        /* 观察每行*号的数量,补全循环条件 */
        for( k=0 ;  k<i*2-1;  k++)   //k<i*2-1第一次循环i=1,k=1*2-1=1,第二次等于3,...
        {
            printf("*");   //每行输出的*号,第一次循环输出1*,二次3*,三次5*
        }
        
        printf("\n");     //每次循环换行
    }
    return 0;
}

这个程序难理解的地方大概就是第一个内循环 j=i 和第二个内循环k=i*2-1,实例过程如下(空格用s表示,换行n):

第一次循环:(外循环下同)

ssss*n                   内循环 1,j=1,1<5,输出4个空格,内循环2,k=1*2-1=1,输出1*

第二次循环:

ssss*n                            

sss***n                   内循环1(第2次,下同),j=2,2<5,输出3个空格,内循环2(第二次,下同),k=3        

第三次循环

ssss*n

sss***n

ss*****n                 内循环1(3),j=3,3<5,输出2个空格,内循环2(3),k=5

第四次循环

ssss*n

sss***n

ss*****n

s*******n               内循环1(4),j=4,4<5,输出1个空格,内循环2(4),k=7 

整个循环结束  #这是我的笔记      

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

qq_我的乌托邦_0

那个k=0 k<2*i-1 有点看不懂
2016-01-20 回复 有任何疑惑可以回复我~

/* Note:Your choice is C IDE 

   *

  ***

 *****

*******

 *****

  ***

   *

*/

#include "stdio.h"

void main()

{

    int i,j,j1=5,k;//i:行, j:*的数量, k:空格数量

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

      {for(k=i;k<4;k++)

        printf(" ");

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

         printf("*");

        printf("\n");

      }

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

      { 

      for(k=i;k>0;k--)

       printf(" ");

      for(j=j1;j>0;j--)

       printf("*");

      j1-=2;//保持j能够以每行少2个

      printf("\n");        

      }

}

     

      

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

Any_one

最后那半段看不懂诶
2015-12-30 回复 有任何疑惑可以回复我~

根据循环输出空格 和*号啊

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

嵌套循环呢,外面的循环控制行i=1,表示第一行,然后进行里面,内循环控制输出空格和*,第一个内循环输出一行的空格,第二个内循环控制输出一行的*。里面的循环结束后就输出好了一行,然后再到了外循环,i=2到第二行循环,以此类推。

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

举报

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

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

进入课程

这个程序怎么运行啊

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