c++问题 高手帮我解答下 谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:08:21
#include<iostream.h>
#include<iomanip.h>
#include<math.h>

double a[4][5];
int n=4;

void swap(int i, int j)
{
double t;
for(int k=0; k<n+1; k++)
{
t = a[i][k];
a[i][k] = a[j][k];
a[j][k] = t;
}
}

void main()
{
int i,j,k;
cout<<"输入未知数个数n: ";
cin>>n;
cout<<"输入系数:"<<endl;
for(i=0; i<n; i++)
{
for(j=0; j<n+1; j++)
cin>>a[i][j];
}

for(j=0; j<n; j++)
{
int max_i = j;
f max = a[j][j];
double c;
for(i=j+1; i<n; i++)
{
if(a[i][j]>max)
{
max = a[i][j];
max_i = i;
}
}
if(max_i != j) swap(max_i, j);

c = a[j][j];
for(k=0; k<n+1; k++)
a[j][k] = a[j][k]/c;

for(i=0; i<n; i++)
{
if(i!=j)
{
c = a[i][j] / a[j][j]

你的程序有好多语法问题
整体思路是利用矩阵初等变换求方程组的解,
如果你学过线性代数,应该很好理解,

关于精度的问题,用
setiosflags(ios::fixed)和setprecision,

cout<<"X"<<i+1<<"="<<setiosflags(ios::fixed)<<setprecision(4)<<a[i][n]<<endl;