# include <stdio.h>
# include <stdlib.h>
# define SIZE 5
/** Eggrafi statistikon pinaka se arxeio keimenou **/

void readArray(int x[],int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		printf("Doste stoixeio ?\n");
		scanf("%d",&x[i]);
	}
}

int max(int x[],int n)
{
	int i;
	int m=x[0];
	for(i=0;i<n;i++)
	{
		if(x[i]>m) m=x[i];
	}
	return m;
}

double average(int x[],int n)
{
	int i;
	double sum=0.0;
	for(i=0;i<n;i++)
	{
		sum=sum+x[i];
	}
	sum=sum/n;
	return sum;
}

void printStatistics(char *filename,int x[],int n)
{
	FILE *fp;
	fp=fopen(filename,"w");
	if(fp==NULL)
	{
		printf("Den epitrepetai eggrafi sto arxeio %s  \n",filename);
	}
	else
	{
		fprintf(fp,"Array size : %d\n",n);
		fprintf(fp,"Max element: %4d\n",max(x,n));
		fprintf(fp,"Average    : %.2lf\n",average(x,n));
		fclose(fp);
	}
}

/** Diabazei ton pinaka apo to filename kai epistrefei to plithos **/
int  *readArrayFromFile(char *filename,int *count)
{
	int value,icount=0;
	
	FILE *fp=fopen(filename,"r");
	int *x;
	/** midenizo to plithos stoixeion tou pinaka **/
	*count=0;
	if(fp==NULL) return 0;
	while(fscanf(fp,"%d",&value)>0) *count=*count+1;
	fclose(fp);
	x=(int *)malloc( (*count) *sizeof(int));
	fp=fopen(filename,"r");
	while(fscanf(fp,"%d",&value)>0) 
	{
		x[icount++]=value;
	}
	fclose(fp);
	return x;
}

void printArray(int *x,int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		printf("%4d",x[i]);
	}
	printf("\n");
}

int main()
{
	int *x=NULL,n;
	char inputfile[100];
	char filename[100];
	
	printf("Dose arxeio pigis \n");
	gets(inputfile);
	
	printf("Dose arxeio statistikon\n");
	gets(filename);
	
	x=readArrayFromFile(inputfile,&n);
	printf("Diabasa %d stoixeia \n",n);
	printArray(x,n);
	printStatistics(filename,x,n);
	free(x);
	return 0;
}
