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 }

C__Users_johnwzq_Documents_deteminant.exe 2025_11_17 18_08_33