#include<stdio.h>
#define n 4
main()
{
double a[n][n];
double b[n][n];
int i,j,k,f=1,f2,t;
for(i=0;i<=n-1;i++)
for(j=0;j<=n-1;j++)
b[i][j]=(i==j)?1:0;
for(i=0;i<=n-1;i++)
{
k=i;
f2=1;
while(f2!=0)
{
if(a[i][k]!=0)
for(j=i;j<=n-1;j++)
{
t=a[i][j];a[i][j]=a[k][j];a[k][j]=t;
t=b[i][j];b[i][j]=b[k][j];b[k][j]=t;
f2=0;
}
if((k++)>n-1)
f=0;
}
if(!f)break;
for(j=0;j<=n-1;j++)
{
t=a[i][i];a[i][j]/=t;b[i][j]/=t;
}
for(k=0;k<=n-1;k++)
{
if(k!=i)
{
t=a[k][i]/a[i][i];
for(j=0;j<=n-1;j++)
{
a[k][j]-=a[i][j]*t;
b[k][j]-=b[i][j]*t;
}
}
}
}
}
c语言解决矩阵逆的转换问题改错
答案:1 悬赏:10 手机版
解决时间 2021-04-10 20:41
- 提问者网友:温柔港
- 2021-04-10 17:54
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-04-10 18:16
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i,j;
int a[3][3],b[3][3];
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
cin>>a[i][j];
cout<<"转置前的数组:"<<endl;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<setw(5)<<a[i][j]<<" ";
if(j==3)
cout<<"\n";
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
b[i][j]=a[j][i];
cout<<"转置后的数组:"<<endl;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<setw(5)<<b[i][j]<<" ";
if(j==3)
cout<<"\n";
}
getchar();getchar();
return 1;
}
#include<iomanip>
using namespace std;
int main()
{
int i,j;
int a[3][3],b[3][3];
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
cin>>a[i][j];
cout<<"转置前的数组:"<<endl;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<setw(5)<<a[i][j]<<" ";
if(j==3)
cout<<"\n";
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
b[i][j]=a[j][i];
cout<<"转置后的数组:"<<endl;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<setw(5)<<b[i][j]<<" ";
if(j==3)
cout<<"\n";
}
getchar();getchar();
return 1;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯