2016-11-18 97 views
-5

新的C++在我的研究中有一項任務。C++逐列輸出

的代碼:

#include <iostream> 
#include <iomanip> 

using namespace std; 

int main() 

    { 
     for (int i = 1, j = 1; i <= 9; i++, j++) { 

      cout << setw(5) << right << i; 
      if(j==3) { 
       j=0; 
       cout << "\n"; 
      } 
     } 
     return 0; 
    } 

產生這樣的輸出:

1 2 3 
4 5 6 
7 8 9 

然而,我需要這樣的輸出:

1 4 7 
2 5 8 
3 6 9 

不允許使用陣列。我認爲這很簡單(爲循環嘗試了額外的等),但無法弄清楚。任何幫助將不勝感激。

+0

你到目前爲止嘗試了什麼? –

+1

這是否需要成爲一個通用的解決方案?因此,如果您需要將數字「1」打印到「10」或「11」,那麼這些數字會是什麼樣子? – Obicere

+0

提示:使用一些數學。第一列和第二列之間的關係是什麼?第二和第三列之間的關係是什麼?師是否有幫助?剩下的呢? –

回答

1

的解決方案如下非常簡單:

#include <iostream> 

int main() { 

    for (int i = 1; i <= 3; i++) { 
     std::cout << i << "\t" << (i + 3) << "\t" << (i + 6) << "\n"; 
    } 

    return 0; 
} 

我建議你應該考慮在基礎數學邏輯來解決這些類型的問題。

上面的代碼將產生以下輸出:

1 4 7 
2 5 8 
3 6 9 

在這裏,如果你看到的每一行中,可以看到,每個值由3

  • i = 1,第一值遞增是我自己。
  • 第二個值是i+3。第二個值是i+6