所以我有我爲CS50 pset1馬里奧問題創建的代碼。代碼行爲正確,並且正在做它應該做的事情,但我不明白其中的一個部分。它爲什麼這樣表現。爲什麼我的for循環在C中正常工作?
這裏是我寫在C代碼:
#include <cs50.h>
#include <stdio.h>
int main (void){
int height, row, space, hash;
do {
printf("Height: ");
height = get_int();
} while(height<0 || height>23);
for (row=0; row<height; row++){
for (space=height-(row+1); space>0; space--){
printf("-");
}
for (hash=height-row; hash<=height; hash++){
printf("#");
}
printf("#\n");
}
}
因此,例如,當用戶輸入3的身高,我得到
--## -### ####
我也不是什麼瞭解它爲什麼不是:
--#### -### ##
這部分是什麼扔我送行:
for (hash=height-row; hash<=height; hash++){
printf("#");
}
如果哈希=身高排那麼應該不會是3-0 = 3,並將它打印井號3次?然後3-1 = 2並打印兩次,依此類推?它爲什麼反過來呢?
有人能解釋我的邏輯有什麼問題嗎?
請在調試器中先運行此代碼:( – KevinDTimm