#include <cs50.h>
#include <stdio.h>
int main(void)
{
//get height
int h;
do
{
get_int("Height: ");
} while (h < 1 || h > 8);
//
for (int y = 7 - h; y > 0; y--)
{
if (y < 0)
printf("# #");
else
printf(" ");
}
for (int x = 0; h > x; x )
{
printf("#");
}
}
我整天都在做這件事,但我就是不明白。有時當我檢查時,我的代碼與課程相同,但它不起作用。我不確定這是我的間距還是什么。或者我會修復一個錯誤并繼續作業,直到它在我開始作業后我什至沒有觸及那個區域后才回來。感覺完全迷失了。
uj5u.com熱心網友回復:
您的代碼具有未定義的行為,因為h未初始化并且您永遠不會將回傳值存盤get_int("Height: ")到其中。
的值h是未定義的,因此對于程式的不同運行它可能會有所不同,從而解釋觀察到的行為。修復很簡單:只需h = get_int("Height: ");在do/while回圈中寫入。
這是一個修改后的值:
#include <cs50.h>
#include <stdio.h>
int main() {
int h;
do {
h = get_int("Height: ");
} while (h < 1 || h > 8);
for (int y = 7 - h; y > 0; y--) {
if (y < 0)
printf("# #");
else
printf(" ");
}
for (int x = 0; h > x; x ) {
printf("#");
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/485430.html
