首页 > 解决方案 > 半右倒金字塔

问题描述

我有一个家庭作业来制作金字塔代码,然后我尝试了一下,代码是这样的:

int main()
{
    int n,i,j,k;
    printf("How many lines long ?\n");
    scanf("%d",&n);
for(i = 0; i<=n; i++)
{
    for(j = 0; j<n-i; j++)
    {
        printf(" ");
    }
    for(k = 0; k<i; k++)
    {
        printf("#");
    }
    printf("\n");
}
return 0;
}

经过多次尝试,结果如下:

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

但是,我想做出这样的结果:

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

谁能帮我???谢谢...

标签: c

解决方案


您可以通过反转外部 for 循环来实现这一点。制作外部 for-loop for(i = n; i>0; i--) {}

修改后的代码:-

int main()
{
    int n, i, j, k;
    printf("How many lines long ?\n");
    scanf("%d", &n);
    for (i = n; i > 0; i--)
    {
        for (j = 0; j < n - i; j++)
        {
            printf(" ");
        }
        for (k = 0; k < i; k++)
        {
            printf("#");
        }
        printf("\n");
    }
    return 0;
}

输出 :-

How many lines long ?
5
#####
 ####
  ###
   ##
    #

您可以通过使用调试器来解决这些简单的问题。所以请学习使用它。或者只是通过纸笔书写。还要确保您的代码正确缩进。


推荐阅读