2013-10-24 54 views
-1

當我構建並運行我的代碼時,它立即返回0,表示編程成功,但是我希望它顯示所有的數字從100 200是由4我的程序運行並返回0,但它沒有顯示給出它的cout數據。

這裏是我的代碼分割...

#include <iostream> 

using namespace std; 

int main() 
{ 
int num = 200; 
int snum; 

cout<<"The following numbers are all divisble by 4 and are inbetween 100 and 200\n"; 
while(num<99) 
{ 
    snum = (num % 4) ; 

    cout<<snum<<endl; 
    cout<<num<<endl; 

      if(snum = 0) 
      { 
       cout<< num << endl; 
      } 
      else 
      { 

      } 
      num--; 
} 



return 0; 
} 

回答

2

while條件應該是while (num > 99)代替while(num<99)(開頭爲false)

if條件應爲if (snum == 0),而不是if(snum = 0)=是分配,不等於運營商)

else部分有沒有,你可以將其刪除。我在下面的評論中添加了其他一些註釋。

while (num > 99) 
{ 
    snum = num % 4 ; // no need for the parenthesizes 

    if (snum == 0) 
    { 
     std::cout<< num << std::endl; 
    } 
    --num; //pre-increment is preferred, although doesn't matter in this case 
} 
1

你的循環永遠不會執行,因爲條件

(num<99) 

從一開始就已經是錯誤的。你可能意味着

(num>99) 

而且,如果語句條件

(snum = 0) 

snum爲零,總是回零,所以你可能是指

(snum == 0) 
+0

我已經用另一個建議更新了我的答案。 –

0

您設置num爲200:

int num = 200; 

那麼你就只能運行循環,如果當數比 99少

while(num<99) 

怎麼辦你期望會發生?


這是你是怎麼做的等於測試在C:

if(snum = 0) 

在C,平等檢查與==

if(snum == 0) 

事實上,你有(if (snum = 0))永遠不會是真的,所以你的if語句將永遠不會被執行。

相關問題