谁有这样的程序........

a_ja 2004-01-06 11:32:35
一个管理并计算矩阵的程序。必须完成矩阵转倒置,还可以完成加法,乘法,乘幂

如果有请贴上来,不胜感谢!
...全文
25 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hcj2002 2004-01-06
  • 打赏
  • 举报
回复
#include <iomanip.h>
#include <iostream.h>
#include <stdlib.h>
#include <math.h>

const int N=4;

inline void swap(double &a,double &b)
{
double c=a;
a=b;
b=c;
};

void DinV(double A[N][N],int n)
{
int i,j,k;
double d;
int JS[N],IS[N];
for (k=0;k<n;k++)
{
d=0;
for (i=k;i<n;i++)
for (j=k;j<n;j++)
{
if (fabs(A[i][j])>d)
{
d=fabs(A[i][j]);
IS[k]=i;
JS[k]=j;
}
}
if (d+1.0==1.0)
return;
if (IS[k]!=k)
for (j=0;j<n;j++)
swap(A[k][j],A[IS[k]][j]);
if (JS[k]!=k)
for (i=0;i<n;i++)
swap(A[i][k],A[i][JS[k]]);
A[k][k]=1/A[k][k];
for (j=0;j<n;j++)
if (j!=k)
A[k][j]=A[k][j]*A[k][k];
for (i=0;i<n;i++)
if (i!=k)
for (j=0;j<n;j++)
if (j!=k)
A[i][j]=A[i][j]-A[i][k]*A[k][j];
for (i=0;i<n;i++)
if (i!=k)
A[i][k]=-A[i][k]*A[k][k];
}
for (k=n-1;k>=0;k--)
{
for (j=0;j<n;j++)
if (JS[k]!=k)
swap(A[k][j],A[JS[k]][j]);
for (i=0;i<n;i++)
if (IS[k]!=k)
swap(A[i][k],A[i][IS[k]]);
}
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout<<setw(11)<<setprecision(4)<<A[i][j];
cout<<endl;
}
}

void main()
{
double A[N][N]={{1,3,2,13},
{7,2,1,-2},
{9,15,3,-2},
{-2,-2,11,5}};
DinV(A,4);
}

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧