wtorek, 29 grudnia 2015

C - Znajdowanie minimum i maksimum ciągu liczbowego

W tym poście przedstawię krótki program, który pozwala na znalezienie wartości minimalnej i maksymalnej podanego ciągu liczbowego. Wykorzystana została funkcja losująca liczbę, które zostały wpisywane do tablicy.

Program wraz z komentarzem przedstawiłem poniżej:

#include <stdio.h>
#include <stdlib.h>
 
void ZnajdzMinMax(int tab[], int n, int *MAX, int *MIN);
 
int main()
{
   int d = 100;
   int najw, najm;
   int ciag[100];
   int i;
 
   srand(time(0)); //ustawienie zarodka
   //printf("Podaj dlugosc ciagu liczbowego: ");
   //scanf("%d", &d);
 
   for(i = 0; i < d; i++){
    ciag[i] = rand()%1000;
    printf("%d: %d\n", i, ciag[i]);
   }
    
   ZnajdzMinMax(ciag, d, &najw, &najm);
 
   printf("Wartosc maksymalna = %d\n", najw);
   printf("Wartosc minimalna = %d\n", najm);
 
   return 0;
}
 
void ZnajdzMinMax(int tab[], int n, int *MAX, int *MIN)
{
  int i;
 
  *MAX = tab[0];
  *MIN = tab[0];
 
  for ( i = 1; i < n; i++)
  {
 
    //Jezeli wartosc tab[i] jest wieksza od max
    //wtedy zostanie podmieniona
    if ( tab[i] > *MAX ){
        *MAX = tab[i];
    }
 
    //Jezli wartosc tab[i] jest mniejsza od aktulnej wartosci min
    //wtedy zostanie ona podmieniona
    else if ( tab[i] < *MIN ) {
         *MIN = tab[i];
    }
  }
}