行列式化簡
行列式化簡成可以直接算出來的形似
#include<stdio.h>
#include<conio.h>
int main()
{
int x,n,i,j,k,count=0,y,m,c;
printf("階數n=");
scanf("%d",&n);
float mat[n][n],b;
for(i=1;i<=n;i++){//i是行數,j是列數,一行一行輸入,
for(j=1;j<=n;j++){
scanf("%d",&x);
mat[i][j]=x;
}
}
for(i=1;i<=n;i++){ //i對角線行和列的數;j是行數;k是列數
if(mat[i][i]==0){
for(m=i;m<=n;m++){
if(mat[m][i]!=0){
for(j=1;j<=n;j++){
c=mat[i][j];
mat[i][j]=mat[m][j];
mat[m][j]=c;
//調換第i行和第m行
}
break;
}
else{
goto here;
}
}
}
for(j=i+1;j<=n;j++){
b=mat[j][i]/mat[i][i];
for(k=i;k<=n;k++){
mat[j][k]=mat[j][k]-b*mat[i][k];
//化為上三角
}
}
}
here:
printf("\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
printf("%.2f ",mat[i][j]);
count++;
if (count%n==0) printf("\n");
}
getch();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/157519.html
標籤:其他
上一篇:模擬題【二分、動態規劃】神光
