第一列包含数字1到5 后续列包含乘以数字的结果 数字0到9的第一列
好吧,我得到了这么远,但它不起作用,我不知道为什么!如果你能指出我的方向非常有帮助:)
#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
答案 0 :(得分:3)
第一列包含数字1到5后续列包含将第一列中的数字乘以数字0到9的结果
嗯......
i
值。因此,内循环j>=i
的条件是错误的。答案 1 :(得分: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
初始化为零很好。但是,条件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.
}
}
希望这有帮助!
答案 2 :(得分: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;
}
格式化并不完美,但它更接近您的目标。