如何用0和1填充二维数组?

时间:2015-12-06 11:00:32

标签: c++ arrays for-loop multidimensional-array

如何用0和1填充二维数组,例如第一行应填充全部1.在第二行中,每个第二个元素应填充1,其他元素填充为0.在第三行中,每第三个元素应填充1,其他元素填充0。

1 个答案:

答案 0 :(得分:0)

像往常一样,有很多方法可以完成这项任务。例如,您可以使用以下解决方案

#include <iostream>

int main()
{
    const size_t M = 5;
    const size_t N = 10;
    int a[M][N];

    for ( size_t i = 0; i < M; i++ )
    {
        for ( size_t j = 0; j < N; j++ ) a[i][j] = ( j + 1 ) % ( i + 1 ) == 0;
    }

    for ( const auto &row : a )
    {
        for ( int x : row ) std::cout << x << ' ';
        std::cout << std::endl;
    }        

    return 0;
}

程序输出

1 1 1 1 1 1 1 1 1 1 
0 1 0 1 0 1 0 1 0 1 
0 0 1 0 0 1 0 0 1 0 
0 0 0 1 0 0 0 1 0 0 
0 0 0 0 1 0 0 0 0 1 

如果您的编译器不支持基于范围的for循环

    for ( const auto &row : a )
    {
        for ( int x : row ) std::cout << x << ' ';
        std::cout << std::endl;
    }        

然后您可以将其替换为普通循环。例如

    for ( size_t i = 0; i < M; i++ )
    {
        for ( size_t j = 0; j < N; j++ ) std::cout << a[i][j] << ' ';
        std::cout << std::endl;
    }