高斯消去.cpp

来自「雅可比迭代等一些程序」· C++ 代码 · 共 45 行

CPP
45
字号
//解线性方程组的高斯消去法//
#include<iostream.h>
#define T 100
void main()
{float a[T][T],b[T],sum;
 int i,j,k,n,l;
s:cout<<"//高斯消去的程序实例//"<<endl<<"输入维数:";
 cin>>n;
 cout<<"输入矩阵A的元素:"<<endl;
 for(i=1;i<=n;i++)
 {for(j=1;j<=n;j++)
 cin>>a[i][j];
 }
 cout<<"输入矩阵b的元素:"<<endl;
 for(i=1;i<=n;i++)
	 cin>>b[i];
k=1;
loop:if(a[k][k]!=0)
{    
	for(i=k+1;i<=n;i++)
	 {a[i][k]=a[i][k]/a[k][k];
	  b[i]=b[i]-a[i][k]*b[k];
	  for(j=k+1;j<=n;j++)
	  a[i][j]=a[i][j]-a[i][k]*a[k][j];
	 }
if(k==n-1)
{
	if(a[n][n]==0)goto p;
else{
	 b[n]=b[n]/a[n][n];
     for(k=n-1;k>=1;k--)
	 {sum=0;
	  for(l=k+1;l<=n;l++)
		  sum+=a[k][l]*b[l];
	  b[k]=(b[k]-sum)/a[k][k];
	 }
	 for(i=1;i<=n;i++)
	 {cout<<'X'<<i<<'='<<b[i]<<endl;}
	 goto s;}
}
else {k++;goto loop;}
}
else p:cout<<"出错信息"<<endl;goto s;

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?