📄 fcz.cpp
字号:
#include<iostream.h>
#include<stdlib.h>
void abc(double *[],double[],int);
void main()
{
int n,i,j,k;
cout<<"输入方程的元数:";
cin>>n;
double **a=new double *[n];
double *b=new double[n];
double *temp=new double[n+1];
if(a==0||b==0||temp==0)
{
cout<<"动态内存申请失败程序终止执行\n";
exit(1);
}
for(i=0;i<n;i++)
{
a[i]=new double[n];
if(a[i]==0)
{
cout<<"动态内存申请失败程序终止执行\n";
exit(1);
}
}
for(i=0;i<n;i++)
{
cout<<"输入第"<<i+1<<"个方程的系数:";
for(j=0;j<n;j++)
cin>>a[i][j];
}
cout<<"输入等号右边的"<<n<<"个数:";
for(i=0;i<n;i++)
cin>>b[i];
for(k=n-1;k>0;k--)
for(i=0;i<k;i++)
{
if(a[k][k]==0)
{
for(int t=0;t<k;t++)
{
if(a[t][k]!=0)
break;
else if(t==k-1)
{
cout<<"方程无解或有无数解\n";
exit(0);
}
}
for(int r=0;r<n;r++)
{
temp[r]=a[t][r];
a[t][r]=a[k][r];
a[k][r]=temp[r];
}
temp[n]=b[t];
b[t]=b[k];
b[k]=temp[n];
}
for(j=0;j<k;j++)
a[i][j]-=a[k][j]*a[i][k]/a[k][k];
b[i]-=b[k]*a[i][k]/a[k][k];
a[i][k]=0;
}
if(a[0][0]==0)
{
cout<<"方程无解或有无数解\n";
exit(0);
}
cout<<"方程的"<<n<<"个根为:";
abc(a,b,n-1);
cout<<endl;
}
void abc(double*a[],double b[],int i)
{
if(i==0)
cout<<(b[i]/=a[i][i])<<'\t';
else
{
abc(a,b,i-1);
for(int j=0;j<i;j++)
b[i]-=b[j]*a[i][j];
cout<<(b[i]/=a[i][i])<<'\t';
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -