我似乎無法理解為什么這部分代碼不起作用,盡管它非常簡單。程式應該這樣做, 1. 輸入:要求用戶插入一個數字(值存盤在高度中), 2. 輸出:然后程式將回傳“”(空格),每行遞減。
這是我想要的結果的示例:(我使用 F 而不是空格)
輸入:4
輸出:
FFFF
FFF
FF
F
這就是我得到的:
輸入:4
輸出:
FFFF
FFFF
FFFF
FFFF
for (int r = 0; r <= height; r ) // first loop, does the columns
{ int space = height;
space -= 1; // decrements space value by 1 for each loop
while (space != 0) // list out the correct spaces in each row
{
printf (" ");
space--;
}
uj5u.com熱心網友回復:
在外回圈的每次迭代中,您重新初始化space為height,因此每次迭代都會獲得相同的輸出。
一個更簡單的方法是使用回圈變數為列的迭代次數和在它向后:
for (int r = height; r > 0 ; r--)
{
for (int space = 0; space < r; space)
{
printf("F");
}
printf("\n");
}
uj5u.com熱心網友回復:
在 for 回圈內
for (int r = 0; r <= height; r ) // first loop, does the columns
{ int space = height;
space -= 1; // decrements space value by 1 for each loop
while (space != 0) // list out the correct spaces in each row
{
printf (" ");
space--;
}
變數空間始終設定為相同的值 height - 1
int space = height;
space -= 1;
您可以通過以下方式輸出您顯示的模式
for ( ; 0 < height; --height )
{
for ( int i = 0; i < height; i )
{
putchar( 'F' );
}
putchar( '\n' );
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/381507.html
