嵌套的for循环,数字向下列

时间:2016-03-22 21:22:22

标签: c++ loops for-loop nested-loops

所以,这里显而易见的新手......我的目标是输出一个包含八列和十行的数字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

我是否朝着正确的方向前进?我该怎么做呢?现在,我打印时只有第一行是正确的。

2 个答案:

答案 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
}

编辑:修复