📄 n元一次方程.cpp
字号:
#include <iostream.h>
#include <stdio.h>
void Make2DArray(float **&y,int rows,int cols)
{
y=new float*[rows];
for(int z=0;z<rows;z++)
y[z]=new float[cols];
} //构造动态二维数组函数
void Make1DArray(float *&u,int v)
{u=new float[v];} //构造动态一维数组函数
void main()
{ int n;
int i,j,k,u,v,p,q;
float **a,**m;
float *b,*x; //定义变量
cout<<"Please enter the number n:";
cin>>n;
cout<<endl; //输入维数n
Make2DArray(a,n,n); //给动态二维数组a[n][n]分配内存空间
Make2DArray(m,n,n); //给动态二维数组m[n][n]分配内存空间
Make1DArray(b,n); //给动态一维数组b[n]分配内存空间
Make1DArray(x,n); //给动态一维数组x[n]分配内存空间
cout<<"Please enter the array a["<<n<<"]["<<n<<"]:";
for(u=0;u<n;u++)
{
for(v=0;v<n;v++)
cin>>a[u][v];
} //依次输入a[n][n]
for(u=0;u<n;u++)
{
for(v=0;v<n;v++)
printf("%15.4f",a[u][v]);
cout<<endl;
} //依次输出a[n][n]
cout<<"Please enter the array b["<<n<<"]:";
for(p=0;p<n;p++)
cin>>b[p]; //依次输入b[n]
for(q=0;q<n;q++)
{
printf("%15.4f",b[q]);
cout<<endl;
} //依次输出b[n]
for(k=0;k<n;k++)
{
for(i=k+1;i<n;i++)
{
m[i][k]=a[i][k]/a[k][k];
for(j=k+1;j<n;j++)
a[i][j]-=m[i][k]*a[k][j];
b[i]-=m[i][k]*b[k];
}
} //求解n元一次方程
cout<<"The equation's solution is:"<<endl;
x[n-1]=b[n-1]/a[n-1][n-1];
cout<<"x["<<(n-1)<<"]="<<x[n-1];
cout<<endl; //输出解x[n-1]
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -