#include<stdio.h>
#include "tab.h"

/* Funkcja wczytuje  ze standardowego wejscia (z klawiatury) liczby rzeczywiste do tablicy 't'.
 * Argument 'n' okresla liczbe wczytywanych wartosci. */
void wczytaj(float t[],int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		printf("t[%i]=",i);
		scanf("%f",&t[i]);
	}
}

/* Funkcja wyswietla na ekranie 'n' pierwszych 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[%i]=%f\n",i,t[i++]);

}


/* Funkcja oblicza sume elementow tablicy (sume 'n' pierwszych liczb umieszczonych w tablicy 't').  */
float suma(float t[],int n)
{
	float s=0;
	while(n>0) s+=t[--n];
	return s;
}



/* Funkcja oblicza wartosc srednia z 'n' pierwszych liczb umieszczonych w tablicy 't'.  */
float srednia(float t[],int n)
{
	return suma(t,n)/n;

}


/* Funckja znajduje w tablicy 'tab[]' element o najwiekszej wartosci.
 * Wartoscia zwracana jest pozycja elementu o najwiekszej wartosci.   */
int maxind(float tab[],int n)
{
	int m=0,i;

   for(i=0;i<n;i++)  if(tab[m]<tab[i]) m=i;
	return m;
}


/* Funckja znajduje w tablicy 't[]' element o najwiekszej wartosci.
 * Wartoscia zwracana jest element tabicy o najwiekszej wartosci.   */
float maksimum(float t[],int n)
{
	int i;
   float max=t[0];

   for(i=0;i<n;i++)  if(max<t[i]) max=t[i];
	return max; 
}

/*  Funkcja sortuje w klejnosci rsonacej 'n' elementow tablicy t. */
float* 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;
         }
      }
   }
   return t;
}



/*  Funkcja odwraca elemnty w tablicy t. Argument 'n' okresla liczbe elementow w tablicy (tylko pierwsze 'n' elementow ulegnie odwroceniu). 
 *  Wartoscia zwracana jest adres tablicy z odwrocona zawartoscia. */
float *odwroc(float *t,int n)
{
   float *p=t;
   float *k=t+n-1;
   float tmp;

   while(k>p)
   {
      tmp=*p;
      *p=*k;
      *k=tmp;
      k--;
      p++;
   }
   return t;
}
