2013-12-19 37 views
-1

该程序只是在用户输入行数时创建菱形的形状,以至于它只有6个for循环; 3路创建第一个三角形和3个回路,以创建其他的三角形,并与这两个三角形和6个环,我们有钻石,这是整个程序的映像:使用`for`循环的菱形形状输出

Image

我对第5个for循环有点困惑,为第二个三角形创建空间的循环,循环以添加第一个空格开始,然后循环结束,程序继续到第6个循环,返回到第4个循环完成第5个循环&第6个循环全部结束,5个循环加上1,2,3,..空间有史以来,我们可以看到:spaces++,问题是这是如何工作的?计数器c每次都会越来越高,所以每次都会有(空格和c)之间的差别为1,因此它假设每次只增加一个空格,对于那些了解我在说的内容的人,你能解释一下这也是我

int n, c, k, space = 1; 

    printf("Enter number of rows\n"); 
    scanf("%d", &n); 

    space = n - 1; 

    for (k = 1; k <= n; k++) 
    { 
    for (c = 1; c <= space; c++) 
     printf(" "); 

    space--; 

    for (c = 1; c <= 2*k-1; c++) 
     printf("*"); 

    printf("\n"); 
    } 

    space = 1; 

    for (k = 1; k <= n - 1; k++) 
    { 
    for (c = 1; c <= space; c++) 
     printf(" "); 

    space++; 

    for (c = 1 ; c <= 2*(n-k)-1; c++) 
     printf("*"); 

    printf("\n"); 
    } 
+0

欢迎来到SO。请阅读这些链接(http://stackoverflow.com/questions/how-to-ask http://sscce.org/),了解如何发布问题。这样你会得到更好的结果。 http://stackoverflow.com/help/on-topic – OldProgrammer

+4

了解如何格式化并花一些时间进行拼写。我厌倦了纠正拼写** im **和** u **的人。当然,大多数人都明白这一点,但事实是你没有花时间来使用正确的拼写,这表明对那些试图提供帮助的人毫无尊重。 –

+1

完成编辑帖子 – darksphere

回答

0

计数器C是每次也越来越高,C++,这样的 差(空间和c)将仍然是1,每次

没有,space++是不是增加c的循环的一部分。该循环打印space空格;完成后,空间会增加,因此下一次它将打印1个空间。

0

第5次循环后,您应该添加空格++;否则钻石将不会是正确的形状。