CS50马里奥,代码将编译,但不会做任何事情
我对编程非常陌生,我正在努力完成cs50课程,而不只是复制别人的代码,也不试图理解为什么我的代码不起作用。目前正在进行第一个C赋值,以创建一个由CS50马里奥,代码将编译,但不会做任何事情,c,cs50,C,Cs50,我对编程非常陌生,我正在努力完成cs50课程,而不只是复制别人的代码,也不试图理解为什么我的代码不起作用。目前正在进行第一个C赋值,以创建一个由#组成的金字塔,但是,当我运行此代码时,我遇到了一些问题。它编译得很好,但当我运行它时,似乎什么也没发生 有人能指出为什么这不起作用和/或如何解决这个问题吗 #include <stdio.h> #include <cs50.h> int main(void) { int spaces; int bricks; int n
#
组成的金字塔,但是,当我运行此代码时,我遇到了一些问题。它编译得很好,但当我运行它时,似乎什么也没发生
有人能指出为什么这不起作用和/或如何解决这个问题吗
#include <stdio.h>
#include <cs50.h>
int main(void)
{
int spaces;
int bricks;
int n;
do
{
n = get_int("Height: ");
}
while (n < 1);
{
for ( int i = 0; i < n; i++)
{
for (spaces = (i - 1); spaces >= 0; spaces++)
{
printf(" ");
}
for (bricks = 1; bricks <= (i + 1); bricks++)
{
printf("#");
}
printf("\n");
}
return 0;
}
}
#包括
#包括
内部主(空)
{
int空间;
整块砖;
int n;
做
{
n=获取整数(“高度:”);
}
n<1;
{
对于(int i=0;i=0;空格++)
{
printf(“”);
}
for(bricks=1;bricksfor
的第一个“内部”循环将“永远”运行(直到发生整数溢出),如果它全部运行1。这是因为,如果空格的初始值
(i-1
)大于或等于零,它将保持不变(因为在循环结束时增加它).相反,您需要减少空格
此外,对于
循环,您的第二个“内部”将只打印棱锥体的一侧。从bricks更改终止条件以修复缩进。感谢您似乎已经解决了这个问题。因此-,就是减量函数(-1)。如果我只想接受特定的高度范围,如0@WilliamColeA高度(n)设置为0几乎没有意义。但是可以将while
条件更改为while(n<1 | | n>10)
以将高度范围限制为1