#include<stdio.h>
#define MAX 1000

/* deklaracje funckcji */
void wczytaj(float t[],int n);
void wyswietl(float t[],int n);
float srednia(float t[],int n);
float suma(float t[],int n);
void sortuj(float t[],int n);

int main()
{
   int n;
   float tab[MAX];

   printf("Ile elementow (nie wiecej niz %d) ? \n",MAX);
   scanf("%d",&n);

   wczytaj(tab,n);
   wyswietl(tab,n);
   printf("Suma = %f\n",suma(tab,n));
   printf("Srednie = %f\n",srednia(tab,n));
   printf("Posortowane elementy tablicy:\n");
   sortuj(tab,n);
   wyswietl(tab,n);

   return 0;

}

/* definicje funkcji */

/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  wczytaj
 *  Description:  wczytuje ze standardowego wejscia n liczb rzeczywistych do tablicy t[]
 * =====================================================================================
 */
void wczytaj(float t[],int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		printf("t[%d]=",i);
		scanf("%f",&t[i]);
	}
}



/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  wyswietl
 *  Description:  wyswietla n liczb rzeczywistych zawartych w tablicy t
 * =====================================================================================
 */
void wyswietl(float t[],int n)
{
	int i=0;
	printf("Zawartosc tablicy (ilosc elementow=%d)\n",n);
	while(i<n) printf("t[%d]=%f\n",i,t[i++]);

}


/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  suma
 *  Description:  zwraca sume n pierwszych elementow tablicy t
 * =====================================================================================
 */
float suma(float t[],int n)
{
	float s=0.0;
	while(n>0) s+=t[--n];
	return s;
}



/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  srednia
 *  Description:  zwraca srednia wartosc z n liczb z tablicy t
 * =====================================================================================
 */
float srednia(float t[],int n)
{
	return suma(t,n)/n;

}

/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  sortuj
 *  Description:  ustawia elementy tablicy t w kolejnosci rosnacej
 * =====================================================================================
 */
void sortuj(float t[],int n)
{
   float tmp;
   int i,j;

   for(i=0;i<n;i++)
   {
      for(j=0;j<n-i-1;j++)
      {
         if(t[j]>t[j+1]) 
         {
            tmp=t[j];
            t[j]=t[j+1];
            t[j+1]=tmp;
         }
      }
   }
}
