計算結果の数値を正常に直したいのです
問題があれば指摘お願いします
ちなみに、int PIVOTとint GAUSSは、予め課題と一緒に用意されたプログラムです
#include <stdio.h>
#include <math.h>
#define EPS 1.0e-5
#define N 2 /*配列の行数と列数の-1*/
#define n 5 /*入力するデータの数*/
int main(void){
	int i,k;
	double x[n],y[n];
	double sum_x=0,sum_x2=0,sum_x3=0,sum_x4=0,sum_y=0,sum_xy=0,sum_x2y=0;
	double ma[N][N],mb[N],mx[N];
	for(i=0;i<n;i++){
		printf("x座標を入力[%d]:",i);
		scanf("%lf",&x[i]);
		printf("y座標を入力[%d]:",i);
		scanf("%lf",&y[i]);
	}
	for(k=0;k<n;k++){
		sum_x+=x[n];
			ma[0][1]=ma[1][0]=sum_x;
		sum_x2+=pow(x[n],2);
			ma[0][2]=ma[2][0]=sum_x2;
		sum_x3+=pow(x[n],3);
			ma[1][2]=ma[2][1]=sum_x3;
		sum_x4+=pow(x[n],4);
			ma[2][2]=sum_x4;
		sum_y=y[n];
			mb[0]=sum_y;
		sum_xy+=x[n]*y[n];
			mb[1]=sum_xy;
		sum_x2y+=pow(x[n],2)*y[n];
			mb[2]=sum_x2y;
	}
	printf("f(x)=%g+%gx+%gx^2",mx[0],mx[1],mx[2]);
	return 0;
}
	
int PIVOT(int *num,int nr,int k,double ma[])
/*nr:行数  ma:配列ma  mb:配列mb  mx:配列mx*/
{
	int i;
	double aa,bb;
	*num=k; 
	aa=fabs(ma[nr*k+k]);
		for(i=k+1;i<nr;i++)
		{
			if(fabs(ma[nr*i+k])>aa)
				{
					*num=i;
					aa=fabs(ma[nr*i+k]);
				}
		}
		if(fabs(aa)<=EPS) return (1);
		if(*num==k)       return (0);
		for(i=k;i<nr;i++)
			{
				bb=ma[nr*k+i];
				ma[nr*k+i]=ma[nr*(*num)+i];
				ma[nr*(*num)+i]=bb;
			}
			return 0;
}
int GAUSS(int nr,double ma[],double mb[],double mx[])
{
	int i,j,k;
	int num; /*交換行番号*/
	double cc; /*置換変数*/
	for(k=0;k<nr-1;k++)
		{
			if(PIVOT(&num,nr,k,ma)!=0) return(1);
			if(num!=k)
				{
					cc=mb[num];mb[num]=mb[k];mb[k]=cc;
				}
			for(i=k+1;i<nr;i++)
				{
					cc=ma[nr*i+k]/ma[nr*k+k];
					for(j=k+1;j<nr;i++)
						ma[nr*i+j]=ma[nr*i+j]-cc*ma[nr*k+j];
					mb[i]=mb[i]-cc*mb[k];
				}
		}
	for(k=nr-1;k>=0;k--)
		{
			if(fabs(ma[nr*k+k])<=EPS) return(1);
			cc=0.0;
			for(j=k+1;j<nr;j++)
				cc+=ma[nr*k+j]*mx[j];
			mx[k]=(mb[k]-cc)/ma[nr*k+k];
		}
	return 0;
}x={1.0,2.0,3.0,4.0,5.0}
y={7.987,2.986,1.986,2.224,5.678}
を入力した場合
f(x)=14.86+8.3157x+1.2963x^2 ・・・と表示されるはずですが
f(x)=6.37431e-314+9.88131e-323+1^2 ・・・と表示してしまいます