如何根据用户给出的数字打印带有文字的金字塔?

时间:2019-01-23 16:49:54

标签: c cs50

当前坚持使用基于用户输入给出的数字的散列(#)创建金字塔。 CS50的示例仅描述了如何根据给定的数字创建正方形。

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    int n = get_int("Number:\n");
    if(n>0 && n<9)
    for (int i = 0; i < n; i++)
  {
    for (int j = 0; j < n; j++)
    {
      printf("#");
    }
  printf("\n");
  }
}

预期结果是根据用户给出的输入创建一个金字塔,该金字塔的宽度是#的#的宽度和高度。

实际结果是一个平方,它是根据用户提供的输入#的#宽x高的量。

1 个答案:

答案 0 :(得分:0)

您需要一个循环,该循环打印空格,直到第二个循环的计数器(j)小于n-i。请看下面:

#include <stdio.h>

int main(void)
{
    int n, i, j, k;

    printf("Number: ");
    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");
    }

} // end main function