タイトルはかなり明確だと思います。
行列式を使用して3x3線形システムを計算するプログラムを作成しようとしていますが、セグメント化エラーが発生しています。ここでは、コードは次のようになります。セグメンテーションフォルト[139]が表示されるのはなぜですか?
#include<stdio.h>
int determinant(int n, int m, int det[m][n])
{
int res;
res = det[0][0]*det[1][1] - det[0][1]*det[1][0];
return res;
}
int main(void)
{
int arr[3][4], det[2][2], i, j, D; //Dx1, Dx2, Dx3
for(i = 0; i < 3; i++)
{
printf("Eisagete tous suntelestes ths %dhs eksisoshs.", i+1);
scanf("%d %d %d %d", &arr[i][0], &arr[i][1], &arr[i][2], &arr[i][3]);
}
for(i = 0; i < 2; i++)
{
for(j = 0; j < 2; i++)
{
det[i][j] = arr[i+1][j+1];
}
}
D = arr[0][0]*determinant(2, 2, det);
for(i = 0; i < 2; i++)
{
for(j = 0; j < 2; i++)
{
det[i][j] = arr[i+1][j+((j == 1) ? 1 : 0)];
}
}
D -= arr[0][1]*determinant(2, 2, det);
for(i = 0; i < 2; i++)
{
for(j = 0; j < 2; i++)
{
det[i][j] = arr[i+1][j];
}
}
D += arr[0][2]*determinant(2, 2, det);
printf("%d\n", D);
}
私は右main
に最初for
のループを完了した後にエラーを取得しています。ブロック内
あなたはどこワンセグを見つけるためにデバッガを使用しています障害が発生しますか? –
申し訳ありませんが、私はOPでこれを言及しませんでした。編集して追加しました。これは、最初のforループの後に発生します。 – AQUATH
これはOKではありません: 'int determinant(int n、int m、int det [m] [n])' –