?? 1.cpp
字號:
#include<iostream.h>
#include<math.h>
void main()
{
int p,n=3;
double x[3],temp;//采用雙精度防止計算中的近似出現不等與0
double a[3][3]={{2,1,-3},{-1,3,2},{1,2,-2}};
double b[3]={-1,5,0};
for(int k=0;k<=n-1;k++)//當k=n-1時用來查看是否有無窮個解
{
p=k;
for(int i=k+1;i<=n-1;i++)//找主元防止除小數溢出
if(abs(a[i][k])>abs(a[p][k]))
p=i;
for(i=k;i<=n-1;i++)
{
temp=a[p][i];
a[p][i]=a[k][i];
a[k][i]=temp;
}
temp=b[p];
b[p]=b[k];
b[k]=temp;
if(a[k][k]==0)
{
cout<<"有無窮個解"<<endl;
return ;
}
for(i=k+1;i<=n-1;i++)
{
temp=-a[i][k]/a[k][k];
for(int j=k;j<=n-1;j++)//j=k+1也可以,雖然再以下的計算中用不到但將前面的置為0可以檢驗該段代碼
a[i][j]+=a[k][j]*temp;
b[i]+=b[k]*temp;
}
}
for(int i=n-1;i>=0;i--)
{
temp=0;
for(int j=i+1;j<=n-1;j++)
temp+=a[i][j]*x[j];
x[i]=(b[i]-temp)/a[i][i];
}
for(k=0;k<3;k++)
{
for(int i=0;i<3;i++)
cout<<a[k][i]<<" ";
cout<<b[k]<<endl;
}
for(k=0;k<3;k++)
cout<<x[k]<<endl;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -