2017-03-11 86 views
-2

需要顯示此使用在while循環在c + +和我堅持我的代碼。這是我的代碼C++使用do while循環打印輸入號碼

#include <iostream> 
using namespace std; 

int main() 
{ 
    int mn, i, n = 1; 
    cout << "Enter max number: "; 
    cin >> mn; 

    do 
    { 
     cout << n << " "; 
     n++; 
    } while (mn >= n); 
    { 
     cout << endl; 
     system("pause"); 
     return 0; 
    } 

我的代碼只顯示

Enter max number: 8 
    1 2 3 4 5 6 7 8 

它應該顯示這個,但我不知道如何使它發揮作用。

Enter max number: 8 

    1 
    12 
    123 
    1234 
    12345 
    123456 
    1234567 
    12345678 

任何想法如何使它工作?謝謝

+3

這是一個好主意:1.拿出一張空白的紙和一支鉛筆。用簡單的邏輯句子,用簡單的英語寫下你提出的做家庭作業的算法。 3. [安排與你的橡皮鴨約會](https://en.wikipedia.org/wiki/Rubber_duck_debugging)。 4.用你的橡皮鴨仔細查看你提出的算法。 5.在您的橡皮鴨認同您提出的算法可行後,只需將您所寫的內容直接轉換爲C++代碼即可。任務完成。 –

+0

發佈無意義的*任何想法?任何想法?*在這裏都不會給你一個很好的接待。請**不要**填滿你的帖子,噪音和廢話。參加[遊覽]並閱讀[幫助]頁面,以瞭解該網站的工作原理以及如何在這裏進行自我介紹。如果你不能遵循這些指導方針,隨時去別的地方尋求幫助。 –

回答

3

根據你想要的結果,在代碼應該有2個循環。一個用於每條線的輸出,另一個用於多條線的輸出。

所以,你需要認識到你的代碼中的變量n只是一行的輸出。您需要在do while循環中添加一個額外的循環,並讓n爲計數器以確定程序應該輸出多少行。

根據你想要的結果,我個人修改了一些cout的代碼。它通過了我的電腦測試。毫無疑問,您可以使用forwhile作爲循環,因爲這些循環可以相互代表彼此。

#include <iostream> 
using namespace std; 

int main() 
{ 
    int mn,n = 1; 
    cout << "Enter max number: "; 
    cin >> mn; 
    cout << endl; 

    do 
    { 
     int temp = 1; 
     do { 
      cout << temp; 
      temp++; 
     } while (n >= temp); 
     cout << endl; 
     n++; 
    } while (mn >= n); 
    return 0; 
}