#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
const int n=4;
int main()
{
float a[n][n],b[n];
int i,j;
void yacobi(float a[][n],float b[n]); //声明
cout<<"please input a[i][j]:"<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
cout<<endl;
cout<<"please input b[i]:"<<endl;
for(i=0;i<n;i++)
cin>>b[i];
cout<<'/n';
yacobi(a,b); //调用
return 0;
}
void yacobi(float a[][n],float b[n])
{int i,j;
float x1[n],x2[n],sum,max,cha;
for(i=0;i<n;i++)
x1[i]=1/a[i][i]*b[i];
do
{
for(i=0;i<n;i++)
{
sum=0;
for(j=0;j<n;j++)
sum+=a[i][j]*x1[j];
x2[i]=x1[i]+1/a[i][i]*(b[i]-sum);
cout<<setw(15)<<x2[i];
}
cout<<endl;
max=fabs(x1[0]-x2[0]);
for(i=1;i<n;i++)
if(max<(cha=fabs(x1[i]-x2[i])))
max=cha;
for(i=0;i<n;i++)
x1[i]=x2[i];
}while(max>0.00001);
}