/*无回代过程的主元消去法*/
#include<stdio.h>
#include<math.h>
#define N 3 //方程阶数
float A[N][N+1]; //增广矩阵
float X[N]; //线性方程组的解
void findmain(int i) //寻找第i列的主元,并将其行交换到当前处理行
{
int j,k;
float c;
c=fabs(A[i][i]);
k=i; //初始化主元在第i行
for(j=i+1;j<N;j++) //寻找主元
if(fabs(A[j][i]>c))
{
c=fabs(A[j][i]);
k=j;
}
if(k!=i)
for(j=0;j<=N;j++)//将主元行交换到当前处理行
{
c=A[k][j];
A[k][j]=A[i][j];
A[i][j]=c;
}
}
void divmain(int i) //将主元所在行的各个系数除以主元,使主元为1
{
int j;
float c;
c=A[i][i];
A[i][i]=1.0;
for(j=i+1;j<=N;j++)
A[i][j]/=c;
}
void del(int i)
{
int j,k;
float c;
for(j=0;j<N;j++)
if(j!=i && A[j][i])
{
c=A[j][i];
A[j][i]=0;
for(k=i+1;k<=N;k++)
A[j][k]-=c*A[i][k];
}
}
int main()
{
int i,j;
printf("输入矩阵系数:\n");
for(i=0;i<N;i++){
for(j=0;j<N;j++){
printf("A%d%d=",i+1,j+1);
scanf("%f",&A[i][j]);
}
printf("B%d=",i+1);
scanf("%f",&A[i][N]);
}
getchar();
for(i=0
线性方程组算法(C语言)
最新推荐文章于 2022-11-22 00:44:11 发布