当前位置: 代码迷 >> C语言 >> 大家帮我看看这个程序哦
  详细解决方案

大家帮我看看这个程序哦

热度:21   发布时间:2007-11-26 13:21:10.0
大家帮我看看这个程序哦
# include<stdio.h>
main( )
{int i,j;
   for(i=4;i>=1;i--)
    {
          printf("*");
           for(j=1;j<=4-i;j++)
              printf("*");
            printf("\n");
       }
}

我不明白这里的*与j是什么关系啊
搜索更多相关的解决方案: int  main  include  

----------------解决方案--------------------------------------------------------
j 是控制输出 * 的数目. i  是行数
----------------解决方案--------------------------------------------------------
我给你分析一下过程你就知道了
当i=4时,打印一个*,然后循环
当i=3时,再打印一个*,然后执行 for (j=1,j<4-i;j++)  (此时j的范围是j<=1),所以再打印一个*
当i=2时,打印一个*,然后执行 for (j=1,j<4-i;j++)  (此时j的范围是j<=2),所以要打印两个*
当i=1时,打印一个*,然后执行 for (j=1,j<4-i;j++)  (此时j的范围是j<=3),所以要打印三个*
当i=0时,退出~
所以结果就是:
*
**
***
****
----------------解决方案--------------------------------------------------------
for循环与while循环的区别
即使条件不成立,
for循环也要执行一次。
----------------解决方案--------------------------------------------------------
i 和 j 的关系控制着打印多少*,


随着i 的减小,j 控制的内循环的循环次数也更见多了。

[[italic] 本帖最后由 cosdos 于 2007-11-26 15:01 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
/*  一个修改版本,很容易理解的 */

#include <stdio.h>

int main(void)
{
    int i, j;
    for(i = 1; i <= 4; i++)
    {
        for(j = 1; j <= i; j++)
            printf("*");
        printf("\n");
    }
    getchar();
    return 0;
}

/*  此版本根据 i 的大小,控制打印 * 的个数 */
----------------解决方案--------------------------------------------------------
J 是行
*是个数
----------------解决方案--------------------------------------------------------
谢谢大家的回答啊

----------------解决方案--------------------------------------------------------
我把程序改了一下     



#include<stdio.h>

int main( )
{
    int i,j;

    for( i=1; i<5; ++i )
    {
        for( j=i; j>0; --j )
            printf("*");

        printf("\n");
    }
   
    return 0 ;
}
----------------解决方案--------------------------------------------------------
  相关解决方案