所以,这里显而易见的新手......我的目标是输出一个包含八列和十行的数字1到80的表。这必须使用嵌套for循环(对于一项任务) )。这就是我到目前为止所做的:
int num = 1; //start table of numbers at one
for (int row = 0; row < 10; row++) //creates 10 rows
{
for (int col = 0; col < 8; col++) //creates 8 columns
{
cout << num << "\t" ; //print each number
num = num + 10;
}
cout << num;
num++;
cout << endl; //output new line at the end of each row
}
但我的输出应该是这样的:
1 11 21 31 41 51 61 71
2 12 22 32 42 52 62 72
...
10 20 30 40 50 60 70 80
我是否朝着正确的方向前进?我该怎么做呢?现在,我打印时只有第一行是正确的。
答案 0 :(得分:0)
我们初学者应该互相帮助。请尝试以下
#include <iostream>
#include <iomanip>
int main()
{
const int ROWS = 10;
const int COLS = 8;
for ( int row = 0; row < ROWS; row++ )
{
for ( int col = 0; col < COLS; col++ )
{
std::cout << std::setw( 2 ) << row + 1 + ROWS * col << ' ';
}
std::cout << std::endl;
}
return 0;
}
输出
1 11 21 31 41 51 61 71
2 12 22 32 42 52 62 72
3 13 23 33 43 53 63 73
4 14 24 34 44 54 64 74
5 15 25 35 45 55 65 75
6 16 26 36 46 56 66 76
7 17 27 37 47 57 67 77
8 18 28 38 48 58 68 78
9 19 29 39 49 59 69 79
10 20 30 40 50 60 70 80
除非变量num
被错误地更改,否则你的方向正确。:)例如,在外环num
的第一次迭代等于(如果我没有记错){ {1}}。
这是一种允许设置初始值的更通用的方法。
72
程序输出
#include <iostream>
#include <iomanip>
int main()
{
const int ROWS = 10;
const int COLS = 9;
const int INITIAL_VALUE = 10;
for ( int row = 0; row < ROWS; row++ )
{
for ( int col = 0; col < COLS; col++ )
{
std::cout << std::setw( 2 ) << INITIAL_VALUE + row + ROWS * col << ' ';
}
std::cout << std::endl;
}
return 0;
}
答案 1 :(得分:-3)
您需要做的就是:
int num = 1; //start table of numbers at one
for (int row = 0; row < 10; row++) //creates 10 rows
{
for (int col = 0; col < 8; col++) //creates 8 columns
{
cout << num << "\t" ; //print each number
num += 10;
}
num = row + 2;
cout << endl; //output new line at the end of each row
}
编辑:修复