andrewand andrewand - 9 days ago 7
C Question

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.

Answer

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;
    }
}
Comments