#include<stdio.h>
int main(){
int a[3][3],i,j;
double determinant=0;
double inv[3][3];
printf("Enter the 9 elements of matrix: ");
for(i=0;i<3;i+=1) {
for(j=0;j<3;j+=1) {
scanf("%d",&a[i][j]);
}
}
printf("\nThe matrix is\n");
for(i=0;i<3;i+=1) {
printf("\n");
for(j=0;j<3;j+=1) {
printf("%d\t",a[i][j]);
}
}
determinant = a[0][0]*a[1][1]*a[2][2] - a[0][0]*a[1][2]*a[2][1]
+ a[0][1]*a[1][2]*a[2][0] - a[0][1]*a[1][0]*a[2][2]
+ a[0][2]*a[1][0]*a[2][1] - a[0][2]*a[1][1]*a[2][0];
printf("\n\ndeterminant=%g\n", determinant);
if(determinant==0.0) {
printf("\nNo inverse matrix exists.\n");
return 0;
}
for(i=0;i<3;i+=1) {
for(j=0;j<3;j+=1) {
inv[i][j]=1.0/determinant*
(a[(i+1)%3][(j+1)%3]*a[(i+2)%3][(j+2)%3] - a[(i+1)%3][(j+2)%3]*a[(i+2)%3][(j+1)%3]);
}
}
printf("\nInverse of matrix is: \n\n");
for(i=0;i<3;i+=1) {
for(j=0;j<3;j+=1) {
printf("%10.4f\t", inv[i][j]);
}
printf("\n");
}
return 0;
}
'c·c++ > c 프로그래밍' 카테고리의 다른 글
next_permutation (0) | 2014.07.21 |
---|---|
연결 리스트 - 선행노드를 모르고 삭제하기 (0) | 2014.06.29 |
c/c++ 언어 공부 (0) | 2014.06.26 |
pseudo random number generator (0) | 2014.06.20 |
c소스 정리(이쁘게 만들기) (0) | 2014.05.25 |