目前坚持根据用户输入给出的数字用哈希值(#)创建金字塔。 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/