目的是写出这样的一段儿,输入n,形成n高度的向右对齐的金字塔。
在输入一个有效数字后,我的代码如下:
//create the pyramid
for (row = 1; row <= height; row++)
{
for (space = (height - row); space > 0; space--)
{
printf(" ");
}
for (hash = (height + 1); hash > 1; hash++)
{
printf("#");
}
printf("\n");
}
其中关于hash数量的语法错了。虽然有正确答案在手,可惜刚学两天根本看不懂我错在哪……
答案在这:
for (all_rows = 1; all_rows <= height; all_rows++)
{
for (space = (height - all_rows); space > 0; space--)
{
printf(" ");
}
for (hash = 1; hash <= (all_rows + 1); hash++)
{
printf("#");
}
printf("\n");
}
return 0;
希望大大们能为我解惑…!
height是正整数吧。
hash = (height + 1)
,所以hash
恒大于1。for (hash = (height + 1); hash > 1; hash++)
是个死循环(执行很多次直到hash溢出)。建议在演算纸上单步执行计算,对比自己的程序和答案,这会大有帮助。