📄 新建 文本文档 (9).txt
字号:
#include<iostream>
#include<conio.h>
#include<iomanip>
#include<conio.h>
#include<math.h>
using namespace std;
#define eps 0.0001
int n;
char m;
void main()
{
int i,j,k,amax,m;
double t;
L:double a[11][11]={0,0,0,0,0,0,0,0,0,0,0},c[11][11]={0,0,0,0,0,0,0,0,0,0,0},x[11]={0,0,0,0,0,0,0,0,0,0,0},f[11];
cout<<"请输入未知数个数n "<<" "<<"退出请输入0"<<endl;//输入矩阵大小
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<"a["<<i<<"]"<<"["<<j<<"]=";
cin>>a[i][j];
}
cout<<"b["<<i<<"]=";
cin>>a[i][j];
}
///////
cout<<"增广矩阵输出如下"<<endl;
for(int kk=0;kk<n;kk++)
{
for(int jj=0;jj<=n;jj++)
{
cout<<setiosflags(ios::fixed)<<setw(15)<<a[kk][jj];//
}
cout<<endl;
}
for(i=0;i<n;i++)
for(j=0;j<n+1;j++)
{
c[i][j]=a[i][j];
}
for(i=0;i<n;i++) //找出列主元素并进行交换
{
amax=i; //记录列主元素的行号,初始值为 i
for(j=i;j<n;j++) //找出列主元素过程
{
if(abs(a[j][i])>abs(a[amax][i]))
amax=j;
}
for(j=i;j<=n;j++) // 将第i行与列主元素行交换
{
t=a[amax][j];
a[amax][j]=a[i][j];
a[i][j]=t;
}
}
//for(i=0;i<n;i++)
//max=(max>=fabs(a[i][j]))?max:(m=i,fabs(a[i][j]));//比较并记所在行号
//{cout<<"无解 !";exit(1);}//列主元太小则停
////////////
cout<<"选出列主元变换后"<<endl;
for(int kk=0;kk<n;kk++)
{
for(int jj=0;jj<=n;jj++)
{
cout<<setiosflags(ios::fixed)<<setw(15)<<a[kk][jj];
}
//cout<<setiosflags(ios::fixed)<<setw(15)<<a[kk][kk+1];
cout<<endl;
};
//////////
for(i=0;i<n-1;i++) //消元过程
{
for(j=i+1;j<n;j++)
{
t=-1*a[j][i]/a[i][i];
for(k=i;k<=n;k++)
{
a[j][k]=a[j][k]+t*a[i][k];
//cout<<a[j][k]<<" ";////////
}
//cout<<endl;
}
cout<<"--消元--"<<endl;
for(int kk=0;kk<n;kk++)
{
for(int jj=0;jj<=n;jj++)
{
//cout<<resetiosflags(ios::left)<<a[kk][jj]<<" ";
cout<<setiosflags(ios::fixed)<<setw(15)<<a[kk][jj];
}
//cout<<setiosflags(ios::fixed)<<setw(15)<<a[kk][kk+1];
cout<<endl;
}
}
///////////////
//cout<<"消元后"<<endl;
//for(int kk=0;kk<n;kk++)
// {
// for(int jj=0;jj<=n;jj++)
// {
// //cout<<resetiosflags(ios::left)<<a[kk][jj]<<" ";
// cout<<setiosflags(ios::fixed)<<setw(15)<<a[kk][jj];
// }
// //cout<<setiosflags(ios::fixed)<<setw(15)<<a[kk][kk+1];
// cout<<endl;
// }
////////////////
for(i=n-1;i>=0;i--) //回代.
{
for(j=n-1;j>i;j--)
{
a[i][n]=a[i][n]-(a[j][j]*a[i][j]);
}
a[i][i]=a[i][n]/a[i][i];
}
cout<<endl;
cout<<"原方程:"<<endl;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(c[i][j]>=0)
cout<<"+"<<c[i][j]<<"X("<<j+1<<") ";
else
cout<<c[i][j]<<"X("<<j+1<<") ";
}
cout<<"="<<c[i][j]<<endl;
}
cout<<endl;
cout<<"方程的解为\n";//输出结果。
for(i=0;i<n;i++)
{
x[i+1]=a[i][i];
cout<<"x("<<i+1<<")="<<x[i+1]<<" ";
}
cout<<endl;
cout<<endl;
cout<<endl;
cout<<"还要继续计算高斯列主元消元吗?"<<endl;//循环控制
cout<<"输入'g'继续,输入任意键退出"<<endl;
cin>>m;
if(m=='g')
goto L;
else goto end;
end: ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -