#include<stdio.h>
#include<math.h>
float determinant(float [][25], float);
void cofactor(float [][25], float);
void transpose(float [][25], float [][25], float);
int main()
{
float a[25][25], k, d;
int i, j;
printf("Enter the order of the Matrix : "); printf("Enter the elements of %.0fX%.0f Matrix : \n", k
, k
); for (i = 0;i < k; i++)
{
for (j = 0;j < k; j++)
{
}
}
d = determinant(a, k);
if (d == 0)
printf("\nInverse of Entered Matrix is not possible\n"); else
cofactor(a, k);
}
/*For calculating Determinant of the Matrix */
float determinant(float a[25][25], float k)
{
float s = 1, det = 0, b[25][25];
int i, j, m, n, c;
if (k == 1)
{
return (a[0][0]);
}
else
{
det = 0;
for (c = 0; c < k; c++)
{
m = 0;
n = 0;
for (i = 0;i < k; i++)
{
for (j = 0 ;j < k; j++)
{
b[i][j] = 0;
if (i != 0 && j != c)
{
b[m][n] = a[i][j];
if (n < (k - 2))
n++;
else
{
n = 0;
m++;
}
}
}
}
det = det + s * (a[0][c] * determinant(b, k - 1));
s = -1 * s;
}
}
return (det);
}
void cofactor(float num[25][25], float f)
{
float b[25][25], fac[25][25];
int p, q, m, n, i, j;
for (q = 0;q < f; q++)
{
for (p = 0;p < f; p++)
{
m = 0;
n = 0;
for (i = 0;i < f; i++)
{
for (j = 0;j < f; j++)
{
if (i != q && j != p)
{
b[m][n] = num[i][j];
if (n < (f - 2))
n++;
else
{
n = 0;
m++;
}
}
}
}
fac
[q
][p
] = pow(-1, q
+ p
) * determinant
(b
, f
- 1);}
}
transpose(num, fac, f);
}
/*Finding transpose of matrix*/
void transpose(float num[25][25], float fac[25][25], float r)
{
int i, j;
float b[25][25], inverse[25][25], d;
for (i = 0;i < r; i++)
{
for (j = 0;j < r; j++)
{
b[i][j] = fac[j][i];
}
}
d = determinant(num, r);
for (i = 0;i < r; i++)
{
for (j = 0;j < r; j++)
{
inverse[i][j] = b[i][j] / d;
}
}
printf("\n\n\nThe inverse of matrix is : \n");
for (i = 0;i < r; i++)
{
for (j = 0;j < r; j++)
{
printf("\t%f", inverse
[i
][j
]); }
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8bWF0aC5oPgpmbG9hdCBkZXRlcm1pbmFudChmbG9hdCBbXVsyNV0sIGZsb2F0KTsKdm9pZCBjb2ZhY3RvcihmbG9hdCBbXVsyNV0sIGZsb2F0KTsKdm9pZCB0cmFuc3Bvc2UoZmxvYXQgW11bMjVdLCBmbG9hdCBbXVsyNV0sIGZsb2F0KTsKaW50IG1haW4oKQp7CmZsb2F0IGFbMjVdWzI1XSwgaywgZDsKaW50IGksIGo7CnByaW50ZigiRW50ZXIgdGhlIG9yZGVyIG9mIHRoZSBNYXRyaXggOiAiKTsKc2NhbmYoIiVmIiwgJmspOwpwcmludGYoIkVudGVyIHRoZSBlbGVtZW50cyBvZiAlLjBmWCUuMGYgTWF0cml4IDogXG4iLCBrLCBrKTsKZm9yIChpID0gMDtpIDwgazsgaSsrKQp7CmZvciAoaiA9IDA7aiA8IGs7IGorKykKewpzY2FuZigiJWYiLCAmYVtpXVtqXSk7Cn0KfQogIGQgPSBkZXRlcm1pbmFudChhLCBrKTsKaWYgKGQgPT0gMCkKcHJpbnRmKCJcbkludmVyc2Ugb2YgRW50ZXJlZCBNYXRyaXggaXMgbm90IHBvc3NpYmxlXG4iKTsKZWxzZQogICBjb2ZhY3RvcihhLCBrKTsKfQogCi8qRm9yIGNhbGN1bGF0aW5nIERldGVybWluYW50IG9mIHRoZSBNYXRyaXggKi8KZmxvYXQgZGV0ZXJtaW5hbnQoZmxvYXQgYVsyNV1bMjVdLCBmbG9hdCBrKQp7CmZsb2F0IHMgPSAxLCBkZXQgPSAwLCBiWzI1XVsyNV07CmludCBpLCBqLCBtLCBuLCBjOwppZiAoayA9PSAxKQp7CnJldHVybiAoYVswXVswXSk7Cn0KZWxzZQp7CiAgICAgZGV0ID0gMDsKZm9yIChjID0gMDsgYyA8IGs7IGMrKykKewogICAgICAgIG0gPSAwOwogICAgICAgIG4gPSAwOwpmb3IgKGkgPSAwO2kgPCBrOyBpKyspCnsKZm9yIChqID0gMCA7aiA8IGs7IGorKykKewogICAgICAgICAgICAgICAgYltpXVtqXSA9IDA7CmlmIChpICE9IDAgJiYgaiAhPSBjKQp7CiAgICAgICAgICAgICAgICAgICBiW21dW25dID0gYVtpXVtqXTsKaWYgKG4gPCAoayAtIDIpKQogICAgICAgICAgICAgICAgICAgIG4rKzsKZWxzZQp7CiAgICAgICAgICAgICAgICAgICAgIG4gPSAwOwogICAgICAgICAgICAgICAgICAgICBtKys7Cn0KfQp9Cn0KICAgICAgICAgIGRldCA9IGRldCArIHMgKiAoYVswXVtjXSAqIGRldGVybWluYW50KGIsIGsgLSAxKSk7CiAgICAgICAgICBzID0gLTEgKiBzOwp9Cn0KIApyZXR1cm4gKGRldCk7Cn0KIAp2b2lkIGNvZmFjdG9yKGZsb2F0IG51bVsyNV1bMjVdLCBmbG9hdCBmKQp7CmZsb2F0IGJbMjVdWzI1XSwgZmFjWzI1XVsyNV07CmludCBwLCBxLCBtLCBuLCBpLCBqOwpmb3IgKHEgPSAwO3EgPCBmOyBxKyspCnsKZm9yIChwID0gMDtwIDwgZjsgcCsrKQp7CiAgICAgbSA9IDA7CiAgICAgbiA9IDA7CmZvciAoaSA9IDA7aSA8IGY7IGkrKykKewpmb3IgKGogPSAwO2ogPCBmOyBqKyspCnsKaWYgKGkgIT0gcSAmJiBqICE9IHApCnsKICAgICAgICAgICAgYlttXVtuXSA9IG51bVtpXVtqXTsKaWYgKG4gPCAoZiAtIDIpKQogICAgICAgICAgICAgbisrOwplbHNlCnsKICAgICAgICAgICAgICAgbiA9IDA7CiAgICAgICAgICAgICAgIG0rKzsKfQp9Cn0KfQogICAgICBmYWNbcV1bcF0gPSBwb3coLTEsIHEgKyBwKSAqIGRldGVybWluYW50KGIsIGYgLSAxKTsKfQp9CiAgdHJhbnNwb3NlKG51bSwgZmFjLCBmKTsKfQovKkZpbmRpbmcgdHJhbnNwb3NlIG9mIG1hdHJpeCovIAp2b2lkIHRyYW5zcG9zZShmbG9hdCBudW1bMjVdWzI1XSwgZmxvYXQgZmFjWzI1XVsyNV0sIGZsb2F0IHIpCnsKaW50IGksIGo7CmZsb2F0IGJbMjVdWzI1XSwgaW52ZXJzZVsyNV1bMjVdLCBkOwogCmZvciAoaSA9IDA7aSA8IHI7IGkrKykKewpmb3IgKGogPSAwO2ogPCByOyBqKyspCnsKICAgICAgICAgYltpXVtqXSA9IGZhY1tqXVtpXTsKfQp9CiAgZCA9IGRldGVybWluYW50KG51bSwgcik7CmZvciAoaSA9IDA7aSA8IHI7IGkrKykKewpmb3IgKGogPSAwO2ogPCByOyBqKyspCnsKICAgICAgICBpbnZlcnNlW2ldW2pdID0gYltpXVtqXSAvIGQ7Cn0KfQpwcmludGYoIlxuXG5cblRoZSBpbnZlcnNlIG9mIG1hdHJpeCBpcyA6IFxuIik7CiAKZm9yIChpID0gMDtpIDwgcjsgaSsrKQp7CmZvciAoaiA9IDA7aiA8IHI7IGorKykKewpwcmludGYoIlx0JWYiLCBpbnZlcnNlW2ldW2pdKTsKfQpwcmludGYoIlxuIik7Cn0KfQ==