使用相同的行号反转金字塔

时间:2016-09-24 14:13:07

标签: c

我遇到了以下question,要求您打印反向金字塔。使用与行号相同的数字,我的所有结果都像反向金字塔,后面是(2i-1)个行中的术语数。

另一个是:

#include <stdio.h>

int main()
{
    int i, j, row;
    printf ("Enter the no of rows");
    scanf ("%d", &row);
    for (i = row; i >= 1; i--)
    {
        for (j = 1; j <= i; j++)
        {
            printf ("%d", i);
        }

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

我应该在上述程序中做出哪些更改才能获得所需的结果。

我做过的一些家庭作业:搜索了几个解释C的网站,并提供了相关的例子。我能得到的最近的是http://www.techcrashcourse.com/2016/01/print-reverse-pyramid-star-pattern-in-c.html 然后添加了一个新循环:
为(K = 3; K&LT =行-I; k ++);
printf(“”);
并多次更改了“K”的初始值,但没有成功。

2 个答案:

答案 0 :(得分:0)

它并不是特别容易猜到你的想法,但关于相关问题,应该按如下方式进行:

#include <stdio.h>
int main()
    {
    int i , j, k, row;
    printf ("Enter the no of rows");
    scanf ("%d",&row);
    for (i=row;i>=1;i--)
    {
        for(k = 0;k<row - (i-1);k++)
        {
            printf (" ");
        }
        for (j=1;j<=i;j++)
        {
            printf ("%d",i);
            printf(" ");
        }
        printf ("\n");
    }
        return 0;
}

另外,请在下次发布结果。

答案 1 :(得分:0)

根据您链接中的问题,答案如下:

#include<stdio.h>
int main()
    {
        int row,i,j,k;
        printf("Enter Number of Rows: ");
        scanf("%d",&row);
        for(i=row;i>0;i--){
            for(j=row-i;j>0;j--)
                printf(" ");
            for(k=1;k<=i+(i-1);k++)
                printf("*");
            printf("\n");
        }
        return 0;
    }

一行中的星数是该行数与前一行的总和。 例如:如果行号为5,则该行中的数字星号为= 5 + 4 = 9。