for循环中的值不随增量变化?

时间:2015-10-22 16:14:28

标签: c for-loop

所以,我有一个简单的C程序,它应该输出越来越少的空格,以及我的新行中越来越多的hashmarks。以下是我用来尝试完成此操作的代码:

for(x = 0; x < n; x++) {
    for(y = n - 1; y > 0; y--) {
        printf(" ");
    }
    for(int z = 2; z < n + 2; z++) {
        printf("#");
    }

    printf("\n");
}

我希望,基于这样倒计时的代码,我应该看到如下输出:

   ##
  ###

然而,当我运行我的代码时,我得到了一致的输出:

   ###
   ###

关于我的for循环中哪里出错可能导致此问题的任何想法?

2 个答案:

答案 0 :(得分:3)

下面:

  #
 ##
###

结果:

{{1}}

答案 1 :(得分:1)

以最简洁的方式做到这一点。 2个循环:

  • 0max MINUS row number
  • 的空格
  • 一个用于从0max MINUS number of space
  • 的#标签

代码:

int main() {
    int n =10;
    int x, y, z;
    for(x = 0; x < n; x++) {
        for(y = 0; y < n - x - 1; ++y) {
            printf(" ");
        }
        for(z = 0; z < n - y; ++z) {
            printf("#");
        }

        printf("\n");
    }
    return 0;
}

您将获得结果:

         #
        ##
       ###
      ####
     #####
    ######
   #######
  ########
 #########
##########