📄 11.cpp
字号:
// 高斯.cpp : 定义控制台应用程序的入口点。
//
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
double JY(double ab[][20],int m,int n)
{
int i,j,k;
double t=0,s=0;
t=fabs(ab[n][n]);
k=n;
for(i=n;i<m;i++)
if(fabs(ab[i][n])>t)
{
t=fabs(ab[i][n]);
k=i;
}
if(t==0)
cout<<"有误"<<endl;
else
if(k!=n)
for(j=n;j<=m;j++)
{
s=ab[n][j];
ab[n][j]=ab[k][j];
ab[k][j]=s;
}
return 0;
}
int main ()
{
int i,j,m,k,t;
double f=0,n=0,ab[20][20]={0};
cout<<"请输入未知数的个数:"<<endl;
cout<<"m=";
cin>>m;
cout<<"请输入系数增广矩阵:"<<endl;
for(i=0;i<m;i++)
for(j=0;j<=m;j++)
cin>>ab[i][j];
cout<<"---------------------------------------------------------------------"<<endl;
cout<<"您输入的系数增广矩阵为:"<<endl;
for(i=0;i<m;i++)
{
for(j=0;j<=m;j++)
cout<<setw(6)<<ab[i][j];
cout<<endl;
}
for(i=0;i<m;i++)
{
JY(ab,m,i);
f=ab[i][i];
for(j=0;j<=m;j++)
ab[i][j]/=f;
for(k=i;k<m;k++)
{
if(i!=k)
{
f=ab[k][i];
for(t=i;t<=m;t++)
{
ab[k][t]-=f*ab[i][t];
}
}
}
}
cout<<"经行变换处理后原矩阵变为:"<<endl;
for(i=0;i<m;i++)
{
for(j=0;j<=m;j++)
cout<<" "<<setw(5)<<ab[i][j];
cout<<endl;
}
for(i=m-1;i>=0;i--)
for(j=i+1;j<m;j++)
{
f=ab[i][j];
ab[i][m]-=f*ab[j][m];
}
cout<<"结果为:"<<endl;
for(i=0;i<m;i++)
cout<<setw(5)<<"X"<<i+1<<"= "<<ab[i][m]<<endl;
cin>>i;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -