1

something like below for example:

| 0 1 0 1 0 |
| 1 0 1 0 1 |
| 0 1 0 1 0 |
| 1 0 1 0 1 |
| 0 1 0 1 0 |

Is the following a good approach, but this would still not produce the required output:

void AltBitArray(int array[][4], int size)
{
  int row, column;
  int val = 0;

  for (row = 0; row < size; row++) {
    for (column = 0; column < size; column++) {
      if (val == 0) {
        array[row][column] = val;
        val = 1;
      }
      else
      {
        array[row][column] = val;
        val = 0;
      }
    }
  }
}
learn2code
  • 11
  • 3

1 Answers1

0

Y would convert the verbose code as following:

  for (row = 0; row < size; row++) {
    for (column = 0; column < size; column++) {
      if (val == 0) {
        array[row][column] = val;
        val = 1;
      }
      else
      {
        array[row][column] = val;
        val = 0;
      }
    }
  }

into following

  for (row = 0; row < size; row++) {
    for (column = 0; column < size; column++) {
      array[row][column] = val;
      val = val ^ 1; // or with val = 1 - val;
    }
}

Here is a working demo https://ideone.com/AEpRjH

// Output
0 1 0 1 0 
1 0 1 0 1 
0 1 0 1 0 
1 0 1 0 1 
0 1 0 1 0 
Md Johirul Islam
  • 5,042
  • 4
  • 23
  • 56