2012-10-19 26 views
0

FlowChartC++編程初學者 - 環和while語句

上面的流程圖表示顯示在屏幕上的數字20,40,60,80,100,120,140,160,180的算法。使用while語句將算法編碼到程序中。計數器變量應該是一個名爲count的int變量。保存並運行該程序。測試程序,看看你是否得到正確的輸出。在程序正常運行時更正任何錯誤將IPO圖表和程序代碼複製並粘貼到Word文檔中。

我剛開始C++,我不確定如何使用while語句和編寫代碼。幫助將不勝感激。到目前爲止,這裏是我的代碼:

#include <iostream> 
using namespace std; 

int main() 
{ 
    int count; 
    count = 10 

; while (count < 200) { 
    cout << count << ", "; 
    count*=2; 
    } 

    system("pause"); 
    return 0; 
} 

如何「添加10到計數器」並顯示上面列出的數字? (20,40,60,80,100,120,140,​​160,180) 到目前爲止,它只顯示10,20,40,80,160 我不確定如何還顯示中間的數字加倍呢? 謝謝!

+1

添加10〜計數器:count + = 10; – nogard

+0

你能澄清你想達到的目標嗎?添加10到計數器似乎沒有任何關係,你試圖顯示的數字列表相差20,並沒有加倍前面的數字。 –

+1

看起來不再使用的作業標籤;-) –

回答

2

要增加十到一個變量,你可以使用:

count = count + 10; 

或縮寫形式:

count += 10; 

爲了輸出數字乘以二,你可以簡單地使用:

cout << (count * 2); 

在輸出(看似)所需格式的號碼列表方面,你想要一個", "每個條目之前小節的第一個,所以你可以改變你的cout聲明是這樣的:

if (count > 10)  // assuming 10 is the first number. 
    cout << ", "; 
cout << count; 

,然後確保你寫了一個換行符結束:

cout << '\n'; 

如果你不實際上擔心在單行上的數字格式不錯,只是用戶:

cout << count << '\n'; 

每行一個。


舉例來說,下面是打印出了比三的倍數少一直到幷包括少一比三十號的程序:

#include <iostream> 

int main (void) { 
    int num = 3; 
    while (num <= 30) { 
     if (num > 3) 
      std::cout << ", "; 
     std::cout << (num - 1); 
     num = num + 3; 
    } 
    std::cout << '\n'; 
    return 0; 
} 

輸出是:

2, 5, 8, 11, 14, 17, 20, 23, 26, 29 

以上評論和示例程序的分析應該足以讓您根據自己的規範構建一個類似的程序。

當然,如果沒有強制執行的任何限制,通常有更好的方法來做事。你的整個程序可以寫成:

#include <iostream> 

int main (void) { 
    std::cout << 20; 
    for (int num = 40; num < 200; num += 20) 
     std::cout << ", " << num; 
    std::cout << '\n'; 
    return 0; 
} 

然而,由於這些限制可能是保證你學會具體部分C++的,你必須做的很長的路要走。

0

據我瞭解流程圖,帶有2的產品只應顯示。所以,

count*=2; 

是不正確的,因爲它改變了計數。你想添加10,所以用count+=10;替換它。

上面,你輸出的數量,而且要輸出的產品有兩個:

cout << (2*count) << ", "; 

最後,你應該從後面count=10的while語句之前移動分號。

此外,system("pause"); - Why is it wrong?

0

你周圍解釋流程圖走錯了路。你用count*=2乘以2的計數器,你不應該這樣做,流程圖說,顯示計數器乘以2這意味着不同的東西。

while (count < 200) { 
    cout << count * 2 << ", "; 
    count += 10; 
} 

注意,顯示命令是在一個平行四邊形,而add命令是在一個長方形,這些形狀在流程圖不同的含義

0

您應該:

  1. cout ing,以便乘法不影響count的實際值。
  2. cout之後加10,這樣下一次迭代將在序列中輸出一個新值。
  3. 繼續迭代,而count < 100

像這樣:

while (count < 100) { 
    cout << count*2 << ", "; 
    count+=10; 
} 
+0

好吧!我明白我做錯了什麼,但是因爲count乘以2並且計數<200.它顯示所有數字達到380。我想我必須停止在180. – user1756913

+0

@ user1756913:修正了它。 –

0

使用加號(+)添加特定值和=它們分配;或組合+ =。

縮短你的代碼可能看起來像:

int main(int argc, char* argv[]) 
{ 
int count = 10; 
while((count+=10) < 200) 
    cout << (count*2) << ", "; 

system("pause"); 
return 0; 
} 

,或者如果你需要這樣一個簡單的計數循環,我會使用的() - 環,如:

int main() 
{ 
for(int count = 10; count < 200; count+=10) 
    cout << (count*2) << ", "; 

//do stuff  
}