Programowanie i algorytmy

KONKURS FRAKTAL

fraktal

VI edycja konkursu programistycznego

FRAKTAL

19-20 listopad 2016

czytaj więcej

znajdowanie najmniejszego lub największego elementu w zbiorze

powrót

Omówimy wyszukiwanie elementu najmniejszego.

Strategia jest następująca: pierwszy element wczytujemy do zmiennej pomocniczej {tex}min{/tex}. Kolejne liczby porównujemy z tą zmienną, i w przypadku, gdy napotkamy na mniejszą to podmieniamy wartość zmiennej {tex}min{/tex}.

Rozpatrzmy zbiór:

{tex}20,\ 6,\ 15,\ 7,\ 5,\ 1,\ 8{/tex}

Zmienna {tex}min{/tex} przyjmuje wartości:

mimmax

Rozwiązanie w C++ bez użycia tablicy:

#include<iostream>
#include<cstdlib>
using namespace std;
 
int main()
{
    int n, min, pom;
 
        cout<<"Ile liczb chcesz wczytać? ";
        cin>>n;
 
        cin>>min; //pierwszą liczbę przypisujemy do zmiennej min
 
        for(int i=1;i<n;i++) //wczytanie pozostałych n-1 liczb
        {
                cin>>pom;
                if(min>pom)
                //podmieniamy, gdy znajdziemy mniejszą niz min
                        min = pom; 
        }
 
        cout<<"Najmniejszą wczytaną liczbą jest "<<min<<endl;
 
        system("pause");
        return 0;
}
 

 

Rozwiązanie z wykorzystaniem tablicy 10-cio elementowej:

#include<iostream>
#include<cstdlib>
using namespace std;
 
int main()
{
    //inicjacja tablicy z przykładowymi danymi
  int min, tab[]={2, 3, 6, 7, 8, 7, 4, 3, 1, 7}; 
 
  min = tab[0]; //pierwszą liczbę przypisujemy do zmiennej min
 
  for(int i=1;i<10;i++) //przeszukanie pozostałych 9 liczb
    if(min>tab[i])
      min = tab[i];
 
  cout<<"Najmniejszą wczytaną liczbą jest "<<min<<endl;
 
  system("pause");
  return 0;
}
 

 

Element największy wyszukujemy analogicznie.