andrewand
andrewand

Reputation: 23

Moving elements in 2d array

I have 2d array filled with random numbers.

For example:

#define d 4

int main(void)
{
int a[d][d];
int primary[d], secondary[d];
size_t i, j;

srand(time(NULL)); /* fill array with random numbers */
for (i = 0; i < d; i++)
  {for (j = 0; j < d; j++)
    a[i][j] = rand() % 100;
  }

How to change diagonals . For example :

1 0 0 0 2        2 0 0 0 1
0 3 0 4 0        0 4 0 3 0
0 0 5 0 0   to   0 0 5 0 0
0 6 0 7 0        0 7 0 6 0
8 0 0 0 9        9 0 0 0 8

Task is to print random matrix of d size then change diagonals placement using cycle and print it again.However i`m not getting how cycle should look like.

Appreciate any hints or examples.

Upvotes: 1

Views: 442

Answers (1)

David Ranieri
David Ranieri

Reputation: 41017

Loop while j < d / 2 and then swap the values:

for (i = 0; i < d; i++) {
    for (j = 0; j < d / 2; j++) {
        int temp = a[i][j];
        a[i][j] = a[i][d - j -1];
        a[i][d - j -1] = temp;
    }
}

Upvotes: 1

Related Questions