A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈伟` 中级黑马   /  2015-3-10 09:14  /  1184 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求详解

      int n = 0 ;

    for (int i = 0 ; i<n ; i++)
{
    for (int j = 0 ; j < n - i ; j ++)
       {
               printf("*");
          }
                  printf("\n");
         
}

           return 0 ;

7 个回复

倒序浏览
握手  握手
!!
回复 使用道具 举报
外层循环控制行数,里层循环打印“*”的个数。i=0的时候,是第一行, 进入里层for循环,循环5次,每次打印一个“*”, i=1的时候打印第二行,进入里层for循环,打印4次。  直到循环条件不满足。
回复 使用道具 举报 1 0
你这个程序是不会输出任何结果的,因为int n =0;程序是无法跳入循环。
回复 使用道具 举报
本帖最后由 waterfoxjie 于 2015-3-10 10:10 编辑

你这个运行不起来吧    三个变量都赋值等于0的话    走不起来呀     改一下n的值吧    我改成了3来说下
     int n = 3 ;
    for (int i = 0 ; i<n ; i++)
{
    for (int j = 0 ; j < n - i ; j ++)
       {
               printf("*");
          }
                  printf("\n");
}
走这段代码的时候,首先是外层的for循环,第一次i=0,i<3条件成立,之执行for循环中的代码,到达里层的for循环,j=0,j<3-0条件成立,输出一个 * , 然后j自加1,在进行一次判断,此时j=1,满足小于3的条件,继续输出 * ,j继续自加,j=2,满足条件,继续输出 * ,j自加,之后的值为3不满足条件了,就退出里层的这个for循环,继续执行下一句代码:printf("\n"),换行,然后i自加,此是外围的for循环就算是走完一圈啦,然后继续第二圈,一样的道理滴~~最后输出的结果应该是:
***
**
*    这样的一个形状,其实外围的for循环就是控制行数的,里层的for循环就是控制这一行要输出多少的,不知道我的解释能不能帮助到你呢?!

评分

参与人数 1技术分 +1 收起 理由
Micro + 1 很给力!

查看全部评分

回复 使用道具 举报
JuniorACMer 来自手机 中级黑马 2015-3-10 09:58:07
地板
顶贴,希望楼主早日解决问题!
回复 使用道具 举报
kim55666 发表于 2015-3-10 09:33
外层循环控制行数,里层循环打印“*”的个数。i=0的时候,是第一行, 进入里层for循环,循环5次,每次打印 ...

谢谢 大神
回复 使用道具 举报
waterfoxjie 发表于 2015-3-10 09:56
你这个运行不起来吧    三个变量都赋值等于0的话    走不起来呀     改一下n的值吧    我改成了3来说下
    ...

  非常 感谢 这位大神  指点  以后有不懂得 地方就找你了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马