首页 > 代码库 > c语言计算整数型行列式
c语言计算整数型行列式
1 #include <stdio.h> 2 3 void showDet(int n,int d[n][n]); 4 int getVal(int n,int d[n][n]); 5 int getA(int n,int d[n][n],int x,int y); 6 7 int main(int argc, char *argv[]) 8 { 9 do{10 int n,i,j;11 printf("请输入行列式的阶数(输入0退出):\n");12 scanf("%d",&n);13 if(n==0) break; 14 printf("请输入行列式(空格分隔):\n"); 15 int d[n][n];16 for(i=0;i<n;i++){17 for(j=0;j<n;j++){18 scanf("%d",&d[i][j]);19 }20 } 21 printf("\n输入行列式如下:\n");22 showDet(n,d); 23 printf("\n该行列式的值为:\n%d\n\n\n",getVal(n,d)); 24 25 }while(1);26 return 0;27 }28 29 void showDet(int n,int d[n][n]){30 int i,j;31 for(i=0;i<n;i++){32 for(j=0;j<n;j++){33 printf("%d\t",d[i][j]); 34 }35 printf("\n"); 36 }37 }38 39 int getVal(int n,int d[n][n]){40 if(n == 1) return d[0][0];41 int i,j,sum=0;42 43 for(i=0;i<n;i++){44 sum=sum+d[0][i]*getA(n,d,1,i+1); 45 } 46 return sum; 47 }48 49 int getA(int n,int d[n][n],int x,int y){50 int a[n-1][n-1],i,j;51 for(i=0;i<n;i++){52 if(i==x-1) continue; 53 for(j=0;j<n;j++){ 54 if(j==y-1) continue;55 else if(i<x-1 && j<y-1){56 a[i][j]=d[i][j];57 } else if(i<x-1 && j>y-1){58 a[i][j-1]=d[i][j];59 }else if(i>x-1 && j<y-1){60 a[i-1][j]=d[i][j];61 }else if(i>x-1 && j>y-1){62 a[i-1][j-1]=d[i][j];63 } 64 }65 }66 int t;67 t = (x+y)%2 == 0 ? 1:-1; 68 return t*getVal(n-1,a); 69 }
c语言计算整数型行列式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。