二维数组每秒二行c ++

时间:2015-12-27 15:09:00

标签: c++ arrays matrix

我想问你的帮助,我想在c ++中显示一个二维数组,其中每两秒的行在0和1之间定期更改。 例如,n = 5,m = 4,程序将写入:

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

1 个答案:

答案 0 :(得分:1)

我还是C ++的初学者。我自己试了一下,看看能否做到。 您唯一需要知道的是,何时为您的行分配1以及何时分配0。

这些是您必须为每个数字赋值0的行: 的 0,1 下,2,3,的 4,5 下,6,7,的 8,9 下,10,11的 12, 13 下,14,15,的 16,17 下,18

再次:

0,1,4,5,8,9,12,13,16,17

如果你这样看待他们,他们没有多大意义。但是如果你把它们分成两个这样的列表:

0,4,8,12,16

1,5,9,13,17

你可以看到第一个列表由数字组成,这是n * 4的结果,第二个列表是n * 4 + 1的结果

所以你只需要在需求为

的情况下制作一个if语句
(i%4 == 0 || i%4 == 1)

这是我的完整代码。这可能不是最好的解决方案:

#include <iostream>
    using namespace std;

    int main()
    {
        const int n = 20, m = 4;
        int array[n][m];

        int i = 0, j = 0;
        while ( i < n) 
        {
            if (j < 4)
            {
                if (i%4 == 0 || i%4 == 1)
                    array[i][j] = 0;
                else
                    array[i][j] = 1;

                cout << array[i][j] << ", ";
                j++;
            }
            else {
                j = 0;
                i++;
                cout << endl;
            }
        }
    }