📄 1213.cpp
字号:
#include "iostream.h"
void init(double[100][100],int &);
void work(double[100][100],int);
void pr(double[100][100],int);
void main()
{
double x[100][100];
int n;
init(x,n);
work(x,n);
pr(x,n);
}
void init(double x[100][100],int &n)
{
ifstream infile;
infile.open("equations.in",ios::in);
infile>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j
{
infile>>x[i][j];
}
infile.close();
}
void work(double x[100][100],int n)
{
int q[100],p,i,j,k;
double min,l;
for(i=0;i<n;i++)
{
q[i]=0;
for(k=0;k
{
p=-1;
min=10000;
for (i=0;i
{
if (!q[i] && x[i][k]!=0 && min-1e-10>fabs(x[i][k]))
{
min=fabs(x[i][k]);
p=i;
}
if (p==-1)
{
ofstream outfile;
outfile.open("equations.out",ios::out);
outfile<<"这个方程无解或有无穷个解."<outfile.close();
exit(0);
}
else
q[p]=1;
for(i=0;iif (i!=p)
{
l=x[i][k]/x[p][k];
for(j=0;j
{
x[i][j]=x[i][j]-l*x[p][j];
}
}
}
void pr(double x[100][100],int n)
{
ofstream outfile;
outfile.open("equations.out",ios::out);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if (fabs(x[i][j])>1e-10)
{
outfile<<"x["< printf("452325\n");
printf("462102\n");
printf("452132\n");
printf("121232\n");
printf("025113\n");
printf("请输入求知量的个数:");
scanf("%d",&n);
printf("\n请输入系数矩阵和右端向量\n");
//分配内存空间
a=newdouble*[n];
for(i=0;i
{
a[i]=newdouble[n+1];
}
//输入数据
for(i=0;i
{
for(j=0;j<=n;j++)
{
scanf("%lf",(*(a+i)+j));
}
}
for(k=0;k
{
for(i=k+1;i
{
client=a[i][k]/a[k][k];
}
}
for(j=k+1;j
{
a[i][j]=a[i][j]-client*a[k][j];
a[i][n]=a[j-1][n]-client*a[k][n];
}
a[n-1][n]=a[n-1][n]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
for(j=i+1;j
{
temp+=a[i][j]*a[j][n];
a[i][n]=(a[i][n]-temp)/a[i][i];
}
}
for(i=0;i
{
printf("X%d=%lf\n",i+1,a[i][n]);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -