/*--------------------------------------------------------------------------------------------
	3_kiegeszites.c

*/

#include <stdio.h>
#include <stdlib.h>

int matrixA[4][4]={1,2,3,1,0,0,1,2,1,1,1,2,3,2,0,1};
typedef double * valosmut;

/*----------------------------------------------------------
matrixletrehoz : letrehoz egy (n x k) meretu tömböt, és visszad-
ja a mutatojat
-----------------------------------------------------------*/
valosmut * matrixletrehoz(int n, int k)
{
	int i;
	valosmut * T;
	T =(valosmut *) malloc(n*sizeof(valosmut));		/*sorok szama =n*/
	
	for (i=0; i<n; i++ )					/*oszlopok szama = k*/		
	{
		T[i]=(valosmut) malloc(k*sizeof(double)) ;
	}
	return T;

}

/*----------------------------------------------------------
matrixlosszead : osszead ket (n x k) meretu tömböt, és visszad-
ja az eredmenytomb mutatojat
-----------------------------------------------------------*/
valosmut * matrixosszead(valosmut *A, valosmut* B, int n, int k)
{
	int i,j;
	valosmut * T= matrixletrehoz(n,k);
	for (i=0;i<n;i++)
	{
		for(j=0;j<k;j++)
			T[i][j] = A[i][j] + B[i][j];
	}
	return T;
}

/*----------------------------------------------------------
matrixkiir : kiir egy (n x k) meretu tömböt
-----------------------------------------------------------*/
void matrixkiir(valosmut *A, int n, int k)
{
	int i,j;
	for (i=0;i<n;i++)
	{
		for(j=0;j<k;j++)
		{
			printf("%6.1f",A[i][j]);
		}
		printf("\n");
	}
	printf("\n");
}

/*---------------------------------------------------------*/
main()
{
	valosmut * A ,*B, *C;				/*ez a ketdimenzios tombok mutatoja*/
	int i;
	clrscr();
	A = matrixletrehoz(5,4);
	B = matrixletrehoz(5,4);

	for (i=0; i<5; i++ )				/*elemekkel feltöltés*/
	{
		A[i][0]=4*i;
		A[i][1]=4*i+1;
		A[i][2]=4*i+2;
		A[i][3]=4*i+3;

	}
	
	for (i=0; i<5; i++ )				/*elemekkel feltöltés*/
	{
		B[i][0]=4*i;
		B[i][1]=4*i+1;
		B[i][2]=4*i+2;
		B[i][3]=4*i+3;

	}
	
	C=matrixosszead(A,B,5,4);
	/*printf("A[1][0] %f ", A[1][0]);
	printf("B[1][0] %f ", B[1][0]);
	printf("C[1][0] %f ", C[1][0]);*/
	matrixkiir(A,5,4);
	matrixkiir(B,5,4);
	matrixkiir(C,5,4);
	return 0;
}

