funkcije max i min iz biblioteke algoritama,c++

poruka: 15
|
čitano: 8.689
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
offline
Max i min
Moze li mi netko na primjeru pokazati koristenje funkcije max na arrayu brojeva?Dakle recimo da imamo int niz[20] u koji su upisani brojevi,kako dobiti najveci pomocu funkcije max ?
 
0 0 hvala 0
15 godina
neaktivan
offline
funkcije max i min iz biblioteke algoritama,c++

Evo to bez funckija.

 

.....

 

printf("Koliko brojeva");

scanf("%d",&n);

max=a[0];           

           for(i=0;i<n;i++)

                 scanf("%d",&a[i]);

 

for(i=0;i<=n;i++)   

       if(a[i]>max)

                          max=a[i];

.....          

Nista nije sveto sve je bruto i neto, sve je zabava!
Moj PC  
1 0 hvala 0
14 godina
neaktivan
offline
funkcije max i min iz biblioteke algoritama,c++

Funkcija max vraca najveci od 2 broja, a ne cijelog niza.

Evo primjer koristenja:

 

...

int main()

{

  int A[20];

  for( int i = 0; i < 20; ++i ) cin >> A[i];

  int maks = -puno; // -puno znaci najmanji moguci element.

  for( int i = 0; i < 20; ++i ) maks = max( maks, A[i] );

}

 
0 0 hvala 0
16 godina
neaktivan
offline
Re: funkcije max i min iz biblioteke algoritama,c+

@Shody - ne misliš li da bi inicijalizacija max-a trebala ići nakon učitavanja niza a ne prije?

@obojica - može li to samo s jednom petljom?

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
15 godina
neaktivan
offline
funkcije max i min iz biblioteke algoritama,c++

U pravu si, bilo bi bolje, ali logički, nebi trebalo imati veze jer si max postavio na prvi član u nizu, nebitno je li to prije ili poslije petlje?

Nista nije sveto sve je bruto i neto, sve je zabava!
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: funkcije max i min iz biblioteke algoritama,c+
Shody_1994 kaže...

U pravu si, bilo bi bolje, ali logički, nebi trebalo imati veze jer si max postavio na prvi član u nizu, nebitno je li to prije ili poslije petlje?

Ali u trenutku inicijalizacije maxa ti u tom polju imaš neko smeće, a ne ono kaj bi trebo imat jer nisi još ništa učitao. Tako da svakako treba ići nakon učitavanja.

 

Btw ovak se to radi:

 

printf("Koliko brojeva: ");
scanf("%d",&n);

printf("Ucitaj 1. broj: ");
scanf("%d",&polje[0]);
maks=polje[0];

mini=polje[0];

for(i=1;i<n;++i)
{
     printf("Ucitaj %d. broj: ",i+1);
     scanf("%d",&polje[i]);
     if (polje[i]>maks) maks=polje[i];
     if (polje[i]<mini) mini=polje[i];}

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
Poruka je uređivana zadnji put čet 24.2.2011 12:21 (Luuka).
15 godina
neaktivan
offline
funkcije max i min iz biblioteke algoritama,c++

Da, vidiš, nisam se sjetio "smeća".

Može i prije for petlje, ako max=a[0]; inicijaliziraš globalno.

Nista nije sveto sve je bruto i neto, sve je zabava!
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: funkcije max i min iz biblioteke algoritama,c+
Shody_1994 kaže...

Da, vidiš, nisam se sjetio "smeća".

Može i prije for petlje, ako max=a[0]; inicijaliziraš globalno.

Ne kužim kaj misliš s tim... ako je u polju a smeće, onda je smeće sve dok nešto unutra ne upišeš. Tek nakon što upišeš nešto smisleno, ima smisla raditi ikakvu inicijalizaciju.

Neki compileri ne ostavljaju smeće, nego automatski cijelo polje inicijaliziraju nulama, pa bi u slučaju da ćeš u polje upisati samo negativne brojeve, ispalo da jemaximalni element nula, kojeg ni nema u polju - eto greške.

Za inicijalizaciju moraš znat kaj radiš i kaj je di zapisano i dal to ima smisla.

 

p.s. vidi gore kak se to najelegantnije napravi.

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
Poruka je uređivana zadnji put čet 24.2.2011 12:07 (Luuka).
15 godina
neaktivan
offline
funkcije max i min iz biblioteke algoritama,c++

Mene su učili u školi, da je svaka varijabla, koja je deklarirana prije main fukcije, odnosno globalno, automatski postavljena na 0.

No nije bitno, nevalja ako je postavljena na 0 prije učitavanja jer onda najmanji član može bit zaista najmanji pa će umjesto njegove vrijednosti ispisati 0.

 

{#}

Nista nije sveto sve je bruto i neto, sve je zabava!
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: funkcije max i min iz biblioteke algoritama,c+
Shody_1994 kaže...

Mene su učili u školi, da je svaka varijabla, koja je deklarirana prije main fukcije, odnosno globalno, automatski postavljena na 0.

No nije bitno, nevalja ako je postavljena na 0 prije učitavanja jer onda najmanji član može bit zaista najmanji pa će umjesto njegove vrijednosti ispisati 0.

 

{#}

Pa nećemo za ovo uvodit globalne varijable, nema smisla.

A i nisam siguran za ovo automatsko postavljanje, mislim da tako nešto ovisi o compileru. Al da ne bi bilo zabune fino napraviš sve bez ikakvih pretpostavki i onda si siguran da radi :D

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
17 godina
offline
Re: funkcije max i min iz biblioteke algoritama,c+
Shody_1994 kaže...

Evo to bez funckija.

 

.....

 

printf("Koliko brojeva");

scanf("%d",&n);

max=a[0];           

           for(i=0;i<n;i++)

                 scanf("%d",&a[i]);

 

for(i=0;i<=n;i++)   

       if(a[i]>max)

                          max=a[i];

.....          

Njegov program će za izračun maksimuma čak dobro raditi, pošto obično ako ne dodijelimo vrijednost polju, tamo se nalazi neka visoka negativna vrijednost,

ali zato neće raditi za izračun min vrijednosti.

Jednostavno se dodijeli vrijednost polju a[0] prije ulaska u petlju, a petlja počinje sa indeksom a[1] polja, jednostavnije od Lukinog načina ne ide:

"jedna petlja + inicijalizacija varijabli prije korištenja"

Poruka je uređivana zadnji put čet 24.2.2011 13:07 (Floki).
17 godina
protjeran
offline
funkcije max i min iz biblioteke algoritama,c++

Mislim  da ste malo zabrijali ili ne znate koristiti STL

Dakle

// min_element/max_element
#include <iostream>
#include <algorithm>
using namespace std;

bool myfn(int i, int j) { return i<j; }

struct myclass {
  bool operator() (int i,int j) { return i<j; }
} myobj;

int main () {
  int myints[] = {3,7,2,5,6,4,9};

  // using default comparison:
  cout << "The smallest element is " << *min_element(myints,myints+7) << endl;
  cout << "The largest element is " << *max_element(myints,myints+7) << endl;

  // using function myfn as comp:
  cout << "The smallest element is " << *min_element(myints,myints+7,myfn) << endl;
  cout << "The largest element is " << *max_element(myints,myints+7,myfn) << endl;

  // using object myobj as comp:
  cout << "The smallest element is " << *min_element(myints,myints+7,myobj) << endl;
  cout << "The largest element is " << *max_element(myints,myints+7,myobj) << endl;

  return 0;
}

Programko http://programko.bloger.hr
Poruka je uređivana zadnji put čet 24.2.2011 13:40 (Programko).
 
1 0 hvala 1
14 godina
neaktivan
offline
funkcije max i min iz biblioteke algoritama,c++

@Luuka Da bilo bi optimalnije samo s jednom petljom, ali cijela moja poanta je bila da se max ne moze koristiti na cijelom polju.

 

 
0 0 hvala 0
17 godina
neaktivan
offline
funkcije max i min iz biblioteke algoritama,c++

Evo po naški:

 

#include <iostream>
#include <algorithm>
using namespace std;

int main () {
  int polje[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};

  cout << "Najveci element polja je " << *max_element(polje, polje+9) << endl;
  cout << "Najmanji element polja je " << *min_element(polje, polje+9) << endl;

  return 0;
}

 
0 0 hvala 1
14 godina
offline
funkcije max i min iz biblioteke algoritama,c++
@tom69
Ma to sam trazio ,ono s petljom i vrapci znaju ;)
 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice