初学者请教:目的是实现高斯选主元的方程组求解,但是没得到正确结果
#include <iostream.h>
#include <math.h>
#define n 3
void jie(float a[][n+1])
{
for(int j=0;j<n-1;j++)
{
//列主元素排序
for(int i=j+1;i<n;i++)
{
if(fabs(a[j][j])<fabs(a[i][j]))
{
for(int h=j;h<n+1;h++)
{
float t=a[j][h];
a[j][h]=a[i][h];
a[i][h]=t;
}
}
}
cout<<"\n\n";
//消元
for(int k=j+1;k<n;k++)
for ( int h=j;h<n+1;h++)
a[k][h]-=a[j][h]*a[k][j]/a[j][j];
//输出
for ( int p=0;p<n;p++)
{
for (int m=0;m<n+1;m++)
{
cout<<a[p][m]<<"\t";
if (m%n==0&&m!=0) cout<<endl;
}
}
}
cout<<"\n\n";
//输出
for (int l=0;l<n;l++)
{
for (int m=0;m<n+1;m++)
{
cout<<a[l][m]<<"\t";
if (m%n==0&&m!=0) cout<<endl;
}
}
}
void main()
{
float a[][4]={2,-4,6,3,4,-9,2,5,1,-1,3,4};
jie(&a[0]);
}
注:a 为增广阵