4 X 4 行列の逆行列を解こうとしていました (後で n X n に変わります)。そこで、行列の余因子を見つけようとしました。
My algorithm is as follows:
suppose a matrix : 1 2 3 4
5 6 7 8
8 9 10 11
12 13 14 15
補因子を見つけるために、1行を削除しました(最初の行を想定してください:現在、行列は5から始まり15で終わる3 X 4です。次のステップは、1列(左側から開始)を削除し、3 X 3行列を取得することでした次のステップは行列式を見つけることですが、最初の列 (たとえば 6、9、13) の後の列を削除するのに問題がありました。使用したコードは次のとおりです。
[...]
//Breaking the matrix into (n-1) X (n-1) format
for (j = 0; j < 4; j++)
{
m = 2;
for ( i = 0; i < 3; i++)
{
ch = 0;
while ((ch >= 0) && (ch < 3))
{
if ((m+1) < j)
{
e[ch][m] = b[ch][m+1];
}
else if ((m+1) == j)
{
NULL;
}
else if ((m+1) > j)
{
e[ch][m] = b[ch][m+1];
}
ch++;
}
m--;
}
配列 b は既に 3 X 4 マトリックスを保持しており、3 X 3 マトリックスをマトリックス c に格納しようとしましたが、ループを実行すると、3 X 3 マトリックスは常に {6, 7, 8}, {9 になりました。 、10、11}、{13、14、15}。また、何らかの理由で (if (m+1) == J) {NULLL;} ステートメントにアクセスできません。プログラムがその状態になることはありません。