📄 gausslzhyxqf.cpp
字号:
#include<iostream>
#include<cmath>
using namespace std;
#define N 3
void gausslzhy();
int main()
{
gausslzhy();
return 0;
}
void gausslzhy()
{
int IP=1;
double ep;
double a[N+1][N+2];
cout<<"请输入ep:";
cin>>ep;
a[0][0]=0;
for(int i=1;i<=N;i++)
{
a[i][0]=0;
cout<<endl<<"请依次输入第"<<i<<"行的值:"<<endl;
for(int j=1;j<=N+1;j++)
{
a[0][j]=0;
cin>>a[i][j];
}
}
for(int k=1;k<=N-1;k++)
{
double p=0;
int i0;
for(int i=k;i<=N;i++)
if(fabs(a[i][k]>p))
{ p=a[i][k];i0=i; }
if(i0!=k)
for(int j=k;j<=N+1;j++)
{p=a[k][j];a[k][j]=a[i0][j];a[i0][j]=p;}
if(fabs(a[k][k])<ep) IP=-1;
else for(int i=k+1;i<=N;i++)
{
a[i][k]=a[i][k]/a[k][k];
for(int j=k+1;j<=N+1;j++)
{ a[i][j]-=a[i][k]*a[k][j]; }
}
}
if(IP==1)
{
for(int i=N;i>=1;i--)
{
double s=0;
for(int j=i+1;j<=N;j++) s+=a[i][j]*a[j][N+1];
a[i][N+1]=(a[i][N+1]-s)/a[i][i];
if(fabs(a[i][N+1])<ep)a[i][N+1]=0;
}
cout<<"\n\n解为:\n";
for(int j=1;j<=N;j++)
cout<<"x"<<j<<"="<<a[j][N+1]<<endl;
}
else cout<<"不适合用高斯列主元消去法解!"<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -