2015-10-18 57 views
-2

我有一個相對簡單的程序,要求用戶輸入一個範圍,然後使用Do-while循環檢查它。在C中使用Do [查找錯誤]

int n; 
do 
{ 
print ("hello, world\n"); 
n = getvalue() //just making this syntax up.It takes value from user 
} 
while (n<0 && n>99); 
print ("%d\n",n); 

我想,如果他/她輸入可能爲負值或三位數字(或更高)的提示用戶輸入的另一值。但是,內部條件並未得到驗證。

輸出的樣子:

無論輸入怎樣的數字,它得到的印刷。即-2被打印爲-2,101爲101而50爲50.理想情況下,-2應提示用戶再次輸入一個數字,所以應打印出101和50。

+1

你意識到這是一個無限循環,對嗎? –

+1

你在哪裏給n賦值? – Marged

+0

發佈代碼的更多詳細信息... – wrangler

回答

1

我認爲這個問題是您相當模糊的n < 0 && n > 99,這不能合理滿足。

你需要更仔細地看看你的循環的邏輯。如果要再次提示用戶輸入小於零的數字大於99,則需要使用邏輯運營商||

while (n < 0 || n > 99);