1 #include <stdio.h> 2 #define N 10 3 int det[N+1][N+1]; 4 5 void input(int n); 6 int cpt(int n); 7 void rxk(int n,int r,int k);//ÐеÄÊý³Ë 8 void r_k(int n,int s);//µÚnÐÐÊý³ËºóÈ¥¼õµÚsÐÐ 9 int pow(int x,int n); 10 void output(int n); 11 int main(){ 12 int n; 13 printf("½×Êý:\n"); 14 scanf("%d",&n); 15 printf("\nÊäÈëÔªËØ:\n"); 16 input(n); 17 int ans=cpt(n); 18 printf("detA=%d",ans); 19 return 0; 20 } 21 22 23 void input(int n){ 24 for(int i=1;i<=n;i++) 25 for(int j=1;j<=n;j++) 26 scanf("%d",&det[i][j]); 27 } 28 void output(int n){ 29 printf("\n\n\n"); 30 for(int i=1;i<=n;i++){ 31 for(int j=1;j<=n;j++) 32 printf("%4d",det[i][j]); 33 printf("\n\n"); 34 } 35 36 } 37 void rxk(int n,int r,int k){ 38 for(int j=1;j<=n;j++) det[r][j]*=k; 39 } 40 void r_k(int n,int s){ 41 for(int j=1;j<=n;j++) 42 det[s][j]-=det[n][j]*(det[s][n]/det[n][n]); 43 } 44 int pow(int x,int n){ 45 if(n==0) return 1; 46 else if(n%2==1)return x*pow(x,n/2)*pow(x,n/2); 47 else return pow(x,n/2)*pow(x,n/2); 48 } 49 int cpt(int n){ 50 if(n==1){ 51 return det[1][1]; 52 }else{ 53 for(int i=1;i<=n-1;i++){ 54 rxk(n,i,det[n][n]); 55 }//ǰn-1Ðоù³ËÉÏÁËdet[n][n] 56 for(int i=1;i<=n-1;i++){ 57 r_k(n,i); 58 } 59 //output(n); 60 return cpt(n-1)/pow(det[n][n],n-2);//ÏȳËÒÔdet[n][n],ÔÙ³ýÒÔËüµÄn-1´Î·½ 61 } 62 63 }

浙公网安备 33010602011771号