#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void PRINT(int,float *);
void Gauss(int,float *);
void XiaoYuan(int,int,float *);
void Calcu(int,float *,float *);
void GaussLie(int,float *);
void Maxcoef(int,float *);
int main(void)
{
int i,j,n;
float *p,*fix1,*x1;
float *q,*fix2,*x2;
printf("请输入方程组的维数n:");
scanf("%d",&n);
x1=(float *)malloc(n*sizeof(float));
x2=(float *)malloc(n*sizeof(float));
p=(float *)malloc(n*(n+1)*sizeof(float));
q=(float *)malloc(n*(n+1)*sizeof(float));
fix1=p;
fix2=q;
if(p==NULL||q==NULL)
{
printf("内存分配出错!");
exit(1);
}
printf("请按从左到右从上到下的顺序输入方程组的参数:\n");
for(i=0;i<n*(n+1);i++)
{
scanf("%f",p);
*q=*p;
p++;
q++;
}
printf("方程组的系数是:");
PRINT(n,fix1);
Gauss(n,fix1);
printf("高斯消元后的系数是:");
PRINT(n,fix1);
Calcu(n,p,x1);
GaussLie(n,fix2);
Calcu(n,q,x2);
printf("高斯消元法的解是:\n");
for(j=0;j<n;j++)
{
printf("%.3f ",x1[j]);
}
printf("\n");