儘管您對嵌套循環有正確的想法,但您當前的代碼只會輸出一些空格和換行符。讓我們逐行檢查您的代碼:
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
,循環將繼續執行。只要它小於或等於九,就希望它運行。另外,你在循環內所做的所有事情都是打印一個換行符。你應該改變它打印的i
和j
產品:
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.
}
}
希望這會有所幫助!
這會打印五次「」(空格字符),然後是換行符。你確定這就是你想要的? – 2011-03-28 16:50:56
@Lily,下次請格式化您的代碼。你所顯示的代碼似乎與你的問題沒有任何關係 - 你在問什麼? – 2011-03-28 16:51:22
@Carl打敗我吧 – mastofact 2011-03-28 16:53:05