我对通过哈佛免费CS 50课程编码和学习非常陌生.问题集1一直很困难,我认为我通过用艰难的方式做事让它变得更具挑战性,即我试图为我的代码创建函数,以适应创建函数的工作方式.任务是制作一个高度在1到8之间的左对齐 pyramid .我创建了从用户获取高度并打印 pyramid 的函数.问题在于 pyramid 如何印刷.它可以正确打印,但打印次数太多.因此,如果用户在提示输入高度时输入"3",则应该打印以下内容:
#
##
###
相反,它会将确切的 pyramid 打印三次:
#
##
###
#
##
###
#
##
###
根据我下面的代码解决这个问题的解决方案是什么?
主要:
{
int n = get_height();
for (int j = 0; j < n; j++)
{
for (int i = 0; i < n; i++)
{
print_row(n - i - 1, i + 1);
}
}
}
功能:
int get_height(void)
{
int n;
do
{
n = get_int("Height: ");
}
while (n < 1 || n > 8);
return n;
}
void print_row(int spaces, int bricks)
{
// Print spaces
for (int j = 0; j < spaces; j++)
{
printf(" ");
}
// Print bricks
for (int i = 0; i < bricks; i++)
{
printf("#");
}
printf("\n");
}