2011-03-28 60 views
0

第一列包含數字1到5個 隨後的列包含到9C++編程幫助!它不會工作?

在由數字0 第一列中的數字相乘的結果好,我能走到今天,但其沒有工作,我不知道爲什麼!如果你能在正確的方向指向我,這將是非常有益的:)

#include <iostream> 
using namespace std; 

int main() 
{ 
    for (int i=0 ; i < 5; i++) 
    { 
     cout << " "; 
     // end for 

     for (int j = 0; j>=i; j ++) 
      cout << endl; 
    } // end for 

    return 0; 
} //end of main function 
+2

這會打印五次「」(空格字符),然後是換行符。你確定這就是你想要的? – 2011-03-28 16:50:56

+2

@Lily,下次請格式化您的代碼。你所顯示的代碼似乎與你的問題沒有任何關係 - 你在問什麼? – 2011-03-28 16:51:22

+0

@Carl打敗我吧 – mastofact 2011-03-28 16:53:05

回答

3

第一列包含1到5的後續列包含由數字在第一列中的數字相乘的結果號碼0至9

HHH ..

  • 在您的代碼段,所述外部循環運行爲0至4,但問題是從1到5
  • 內循環應該從0到9運行,這意味着它獨立於外循環的值i。所以,內環j>=i的條件是錯誤的。
0

如果我明白你想做什麼,你的代碼將永遠不會工作。

你想是這樣的:

for(int i=1; i <=5; i++) 
{ 
    std::cout << i << " "; 
    for(int j=0; j <=9; j++) 
    std::cout << i*j << " "; 

    std::cout << std::endl; 
} 

的格式化不會是完美的,但它更接近你彷彿在尋找。

+3

你應該解釋爲什麼代碼不起作用,而不是提供答案。 – Mahesh 2011-03-28 17:03:10

1

儘管您對嵌套循環有正確的想法,但您當前的代碼只會輸出一些空格和換行符。讓我們逐行檢查您的代碼:

for (int i=0 ; i < 5; i++) 

此循環中的迭代器將從零開始並以四爲結尾。雖然從零開始在很多情況下可以接受的,這是一個更容易在這裏只是從1開始所以,應該改成這樣:

for (int = 1; i <= 5; i++) 

現在,下一行。

cout << " "; 

所有這些都是打印空間。你有號碼,但你沒有做任何事情。空間之前,您應該打印i,就像這樣:

cout << i << " "; 

我們在你的第二個(內)循環再次遇到了麻煩。

for (int j = 0; j>=i; j ++) 
    cout << endl; 

j初始化爲0是件好事。但是,您的條件j >= i意味着只要j大於或等於i,循環將繼續執行只要它小於或等於九,就希望它運行。另外,你在循環內所做的所有事情都是打印一個換行符。你應該改變它打印的ij產品:

for (int j = 0; j <= 9; j++) 
    cout << (i * j) << " "; 

當你把它放在一起,你應該像下面的代碼結束。請注意,我添加了一些額外的格式,爲了清晰起見,我更改了一些標識符。

#include <iostream> 
#include <iomanip> // Needed for std::setw, which makes sure everything lines up. 

int main() 
{ 
    for (int firstNumber = 1; firstNumber <= 5; firstNumber++) 
    { 
     std::cout << std::setw(3) << firstNumber << " | "; // Output the first number of the row. This makes up the first column. 

     for (int secondNumber = 0; secondNumber <= 9; secondNumber++) 
     { 
      std::cout << std::setw(3) << (firstNumber * secondNumber) << " "; // Output the rest of the numbers in the row. 
     } 

     std::cout << std::endl; // We're done with the row, so make a linebreak. 
    } 
} 

希望這會有所幫助!