#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROW 3
#define COL 4
void inverse_matrix(int m[][COL]) {
int i, j, r, c, tmp, counter = 0;
for (r = ROW - 1, i = 0; i < ROW; i++, r--) {
for (c = COL - 1, j = 0; j < COL; j++, c--) {
tmp = m[i][j];
m[i][j] = m[r][c];
m[r][c] = tmp;
counter++;
if (counter > (ROW * COL) / 2 - 1) return;
}
}
}
void print_matrix(int m[][COL]) {
int i, j;
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++)
printf("%5i", m[i][j]);
printf("\n");
}
}
int main(void)
{
int i, j, matrix[ROW][COL] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
printf("matrix 1:\n");
print_matrix(matrix);
inverse_matrix(matrix);
printf("inverse matrix 1:\n");
print_matrix(matrix);
srand(time(NULL));
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
matrix[i][j] = rand() % 10 + 1;
}
}
printf("\n\nmatrix 2:\n");
print_matrix(matrix);
inverse_matrix(matrix);
printf("inverse matrix 2:\n");
print_matrix(matrix);
return 0;
}
/*
run:
matrix 1:
1 2 3 4
5 6 7 8
9 10 11 12
inverse matrix 1:
12 11 10 9
8 7 6 5
4 3 2 1
matrix 2:
6 3 10 2
6 3 9 2
7 8 9 1
inverse matrix 2:
1 9 8 7
2 9 3 6
2 10 3 6
*/