C语言 求矩阵的逆
//源程序如下#include#include#include#include#include#include#define max 100void inputstyle(int *); //输入函数void input(int **,int); //输入函数long danx(int **,int);int sgnx(int);void martx(int **,int);int main(void){ int style=0,i=0; int matrix[max][max],*p[max]; for(i=0;i>exit1; fflush(stdin); printf("...全部
//源程序如下#include#include#include#include#include#include#define max 100void inputstyle(int *); //输入函数void input(int **,int); //输入函数long danx(int **,int);int sgnx(int);void martx(int **,int);int main(void){ int style=0,i=0; int matrix[max][max],*p[max]; for(i=0;i>exit1; fflush(stdin); printf("
"); } return(0);} void input(int **p,int n){ for(int i=0;imax); }long danx(int **p,int n){ int i=0,j1=0,k1=0,j2=0,k2=0; long sum=0; int operate[max][max],*po[max]; for(i=0;i else{ for(i=0;i for(j1=1,j2=0;j1 k1=-1;k2=-1; while(k2 k1 ; k2 ; if(k1==i)k1 ; *(*(po j2) k2)=*(*(p j1) k1); } } /*for(int i1=0;i1 for(int h1=0;h1 printf("(%d,%d)%d ",i1,h1,*(*(po h1) i1)); } printf("
"); }*/ sum =*(*(p 0) i) * sgnx(1 i 1) * danx(po,n-1); } return sum; }}int sgnx(int i){ if(i%2==0)return(1); else return(-1);}void martx(int **p,int n){ int i=0,j=0,j1=0,k1=0,j2=0,k2=0,num=0; int tramform[max][max]; int operate[max][max],*po[max]; for(i=0;i num=danx(p,n); if(num==0)printf("矩阵不可逆
"); else{ if(n==1)printf("矩阵的逆为: 1/%d
",num); else{ printf("矩阵的逆为: 系数 1/%d *
",num); for(i=0;i for(j=0;j j1=-1;j2=-1; while(j2 j1 ;j2 ; if(j1==j)j1 ; k1=-1;k2=-1; while(k2 k1 ; k2 ; if(k1==i)k1 ; *(*(po j2) k2)=*(*(p j1) k1); } } tramform[i][j]=sgnx(2 i j) * danx(po,n-1); } } for(i=0;i for(j=0;j printf("M",tramform[i][j]); } printf("
"); } } }}//运行结果//希望对你有帮助。
收起