?? 1.cpp
字號(hào):
#include<iostream.h>
#include<math.h>
void gaosi(double **a,double *b,int n)
{
int i,j,k=0;
double *p,*q,temp,*pb,*qb;
while(k<n-1)
{
q=p=a[k];
qb=pb=&b[k];
for(i=k+1;i<n;i++)
if(fabs(a[i][k])>fabs(*(p+k)))
{
p=a[i];
pb=&b[i];
}//找主元
if(p!=a[k])
{
for(i=k;i<n;i++)
{
temp=*(q+i);
*(q+i)=*(p+i);
*(p+i)=temp;
}
temp=*qb;
*qb=*pb;
*pb=temp;
}//換行
for(i=k+1;i<n;i++)
{
a[i][k]=a[i][k]/a[k][k];
for(j=k+1;j<n;j++)
a[i][j]=a[i][j]-a[i][k]*a[k][j];
b[i]=b[i]-a[i][k]*b[k];
}//消元
k++;
}
b[n-1]=b[n-1]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
temp=0;
for(j=i+1;j<n;j++)
temp+=a[i][j]*b[j];
b[i]=(b[i]-temp)/a[i][i];
}//回代求解
}
void main()
{
int n,i,j;
double **a,*b;
cout<<"輸入方程元的個(gè)數(shù)";
cin>>n;
a=new double*[n];
for(i=0;i<n;i++)
a[i]=new double[n];
b=new double[n];
cout<<"從左至右、從上至下輸入系數(shù)矩陣";
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
cout<<"輸入常向量";
for(i=0;i<n;i++)
cin>>b[i];
gaosi(a,b,n);
for(i=0;i<n;i++)
cout<<'x'<<i<<'='<<b[i]<<endl;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -