我想问你的帮助,我想在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
答案 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;
}
}
}