c - 如何根据用户给出的数字打印包含文本的金字塔?

标签 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 数量,具体取决于用户输入的输入。

最佳答案

您需要一个循环来打印空格,直到第二个循环的计数器 (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

关于c - 如何根据用户给出的数字打印包含文本的金字塔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54332027/

相关文章:

c - Vigenere Cipher - 公式解释

c - 错误: expected ';' after expression and expression result unused

c - Greedy.c 输出错误的数字,我不知道为什么? (CS50 代码)

c - 在 C 中同时使用管道标准输入和键盘

子进程可以等待其兄弟进程并获取其退出状态吗?

CS 50- Pset 1 马里奥程序

c - 有人愿意找出可能导致我的代码出现段错误的原因吗?

c - 代码中的时间复杂度?

c - X11编程显示界面

c - 在 C 中使用 fgets 读取文本文件直到 EOF