📄 1.cpp
字号:
#include<iostream.h>
#include<stdlib.h>
#define a(i,j) a[i*(n+1)+j]
float f(float s)
{ if(s<0) return -s;
else return s;
}
void sc(float a[],int n)
{ int k,j;
for(k=0;k<n;++k)
{cout<<endl;
for(j=0;j<n+1;++j)
cout<<a(k,j)<<" ";
}
cout<<endl;
}
void main()
{ int i,j,n,k;
cout<<"请输入您要计算的阶数:";
cin>>n;
float *a,s;
a=new float[n*(n+1)];
cout<<"input A("<<n<<"*"<<n<<")"<<endl;
for(i=0;i<n;++i)
for(j=0;j<n;++j)
cin>>a(i,j);
cout<<"input b:"<<endl;
for(j=0;j<n;++j)
cin>>a(j,n);
sc(a,n);
for(i=0;i<n-1;++i)
{ s=a(i,i);k=i;
for(j=i+1;j<n;++j)
if(f(s)<f(a(j,i))) {s=a(j,i);k=j;}
if(s==0) { cout<<"det(A)=0";exit(1);}
if(k!=i)
for(j=0;j<n+1;++j)
{ s=a(k,j);
a(k,j)=a(i,j);
a(i,j)=s;
}
for(k=i+1;k<n;++k)
for(j=n;j>=i;--j)
a(k,j)-=a(i,j)*a(k,i)/a(i,i);
sc(a,n);
}
i=n-1;j=n;
a(i,j)/=a(i,i);
for(i=n-2;i>=0;i--)
{ s=0;
for(j=i+1;j<n;++j)
s+=a(i,j)*a(j,n);
a(i,n)=(a(i,n)-s)/a(i,i);
}
cout<<endl;
for(i=0;i<n;++i)
cout<<"x"<<i+1<<"="<<a(i,n)<<endl;
delete a;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -