M,ElemType **V) Р/*全选主元法求矩阵M的逆矩阵,结果存入矩阵V中*/Р{Р?int i,j,k;Р?ElemType d;Р?ElemType u;Р?int *JS,*IS;Р?JS=(int *)malloc(sizeof(int)*n);Р?IS=(int *)malloc(sizeof(int)*n);Р?u=MatrixDeterm(M,n); //返回矩阵A的行列式值Р?if(u==0)Р return -1;Р?for(i=0;i<n;i++)Р for(j=0;j<n;j++)Р V[i][j]=M[i][j];Р?for(k=0;k<n;k++)Р?{Р d=0;Р for(i=k;i<n;i++) //找出矩阵M从M[k][k]开始绝对值最大的元素Р {Р for(j=k;j<n;j++)Р {Р if(fabs(V[i][j])>d)Р {Р d=fabs(V[i][j]); //d记录绝对值最大的元素的值Р/*把绝对值最大的元素在数组中的行、列坐标分别存入IS[K],JS[K]*/Р IS[k]=i; Р JS[k]=j;Р }Р }Р }Р if(d+1.0 == 1.0)Р return 0; //所有元素都为0Р if(IS[k] != k) Р/*若绝对值最大的元素不在第k行,则将矩阵IS[K]行的元素与k行的元素相交换*/Р for(j=0;j<n;j++)Р swap(&V[k][j],&V[IS[k]][j]);Р if(JS[k]!=k) Р/*若绝对值最大的元素不在第k列,则将矩阵JS[K]列的元素与k列的元素相交换*/Р for(i=0;i<n;i++)Р swap(&V[i][k],&V[i][JS[k]]);Р V[k][k]=1/V[k][k]; //绝对值最大的元素求倒Р for(j=0;j<n;j++)