宿題とか手伝えます
■ このスレッドは過去ログ倉庫に格納されています
0326C勉強中@VB厨
NGNG#include <stdio.h>
#include <memory.h>
int determinant(int a[3][3]);
int main(void) {
int a[3][3],b[3][3],detA;// a:元行列 b:余因子行列 detA:行列Aの行列式
int c[3][3],i,m,k;// temp
double r[3][3];// 結果
a[0][0] = 1;
a[0][1] = 1;
a[0][2] = 1;
a[1][0] = 1;
a[1][1] = 2;
a[1][2] = 3;
a[2][0] = 2;
a[2][1] = 4;
a[2][2] = 5;
// 行列式を表示するモナー
detA = determinant(a);
printf("detA = %d\n",detA);
// 余因子行列を表示するモナー
for(i=0;i<=2;i++) {
for(m=0;m<=2;m++) {
memcpy(c,a,sizeof(a));
for(k=0;k<=2;k++) {
if(k==i) { c[k][m]=1; }else{ c[k][m]=0; }
}
//r[i][m] = determinant(c) / detA;
b[i][m] = determinant(c);
printf("b[%d][%d] = %d\n",i,m,b[i][m]);
}
}
// 逆行列を表示するモナー
for(i=0;i<=2;i++) {
for(m=0;m<=2;m++) {
r[i][m] = b[m][i] / detA;
printf("r[%d][%d] = %f\n",i,m,r[i][m]);
}
}
return 0;
}
// 行列式を求める関数モナー
int determinant(int a[3][3]) {
return a[0][0]*a[1][1]*a[2][2]+a[0][1]*a[1][2]*a[2][0]+a[0][2]*a[1][0]*a[2][1]
-a[0][2]*a[1][1]*a[2][0]-a[0][1]*a[1][0]*a[2][2]-a[0][0]*a[2][1]*a[1][2];
}
■ このスレッドは過去ログ倉庫に格納されています