问题集要求我们使用哈希创建一个半金字塔。这是一个关于它应该如何显示的图像的链接 -
我理解并编写了程序,直到打印空格(我已经用" _&#34替换;只是为了我可以测试它的前半部分。
然而,当我尝试运行我的程序时,它并没有超出do-while循环。换句话说,它一直在问我金字塔的高度,似乎根本没有运行for循环。我尝试了多种方法,但这个问题似乎仍然存在。
任何帮助将不胜感激!
以下是我的代码 -
# include <cs50.h>
# include <stdio.h>
int main(void)
{
int height;
do
{
printf("Enter the height of the pyramid: ");
height = GetInt();
}
while (height > 0 || height < 24);
for (int rows = 1; rows <= height, rows++)
{
for (int spaces = height - rows; spaces > 0; spaces--)
{
printf("_");
}
}
return 0;
}
运行此程序会产生以下输出 -
Enter the height of the pyramid: 11
Enter the height of the pyramid: 1231
Enter the height of the pyramid: aawfaf
Retry: 12
Enter the height of the pyramid:
答案 0 :(得分:3)
你的do / while循环条件不正确 - 更改:
do {
...
} while (height > 0 || height < 24);
要么:
do {
...
} while (height <= 0 || height >= 24);
或:
do {
...
} while (!(height > 0 && height < 24));
(无论你认为哪个更具可读性/直观性)。
答案 1 :(得分:-2)
这是更简单的
for(int i=0;i<8;i++) {
for(int j=0;j < (8-i); j++)
{
System.out.print(" ");
}
for(int k=0;k<=(i+1);k++)
{
System.out.print("#");
}
System.out.println();
}