Rekurzija C++

poruka: 5
|
čitano: 7.367
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
offline
Rekurzija C++

Tracer, zamolio bih te da mi objasniš kako radi onaj primjer rekurzivne funkcije iz Analize u kojem funkcija vraća indeks najvećeg elementa cjelobrojnog 1D polja.

 

int indeks(int polje[], int i, int n) {

           int tmax;

 

           if(i>=n-1) return n-1;

           tmax = index(polje, i+1, n);

           if(polje[i] > polje[tmax]) return i;

           return tmax;

}

 

 

 
0 0 hvala 0
17 godina
protjeran
offline
Rekurzija C++

Već su to i drugi pitali ali na drugim forumima Namigiva

 

http://www.elitesecurity.org/t210101-0#1267002

Moj PC  
0 0 hvala 1
17 godina
offline
Rekurzija C++

Međtim, ne mogu dobiti dobru povratnu vrijednost, a ne kužim gdje griješim

 

#include<iostream>
using namespace std;

int indeks(int polje[], int i, int n) {

           int tmax;

 

           if(i>=n-1) return n-1;

           tmax = indeks(polje, i+1, n);

           if(polje[i] > polje[tmax]) return i;

           return tmax;

}

 void main() {
    int i, n, *polje;
    cout<< "Unesi broj elemenata polja: "; cin>> n;
    polje = new int[n];
    for(i=0; i<n; i++) {
       cout<< "Unesi " << (i+1) << ". element polja: ";
       cin>> polje[i];
    }
    cout<< "Indeks najveceg elementa niza: " << indeks(polje, i, n) << endl;
 }

 
0 0 hvala 0
17 godina
offline
Rekurzija C++

Sorry što sam te davio za moju grešku, gledam i ne vidim gdje griješimMršti se

 

#include<iostream>
using namespace std;

int indeks(int polje[], int i, int n) {

           int tmax;

 

           if(i>=n-1) return n-1;

           tmax = indeks(polje, i+1, n);

           if(polje[i] > polje[tmax]) return i;

           return tmax;

}

 void main() {
    int i, n, *polje;
    cout<< "Unesi broj elemenata polja: "; cin>> n;
    polje = new int[n];
    for(i=0; i<n; i++) {
       cout<< "Unesi " << (i+1) << ". element polja: ";
       cin>> polje[i];
    }
    int k=0;
    cout<< "Indeks najveceg elementa niza: " << indeks(polje, k, n) << endl;
 }
Hvala ti!

 
0 0 hvala 0
17 godina
offline
Rekurzija C++

Volim uvijek jedan napraviti od nule, da skužim kako neka funkcija radi, dakle ovo bi bila rekurzivna funkcija koja daje najveći element u polju:

 

 

#include<iostream>
using namespace std;

int indeks(int polje[], int i, int n) {

           int max;

         if(i>=n-1) return polje[n-1];
         max = indeks(polje, i+1, n);
         if(max>polje[i]) return max;
         else return polje[i];

}

 void main() {
    int i, n, *polje;
    cout<< "Unesi broj elemenata polja: "; cin>> n;
    polje = new int[n];
    for(i=0; i<n; i++) {
       cout<< "Unesi " << (i+1) << ". element polja: ";
       cin>> polje[i];
    }
    int k=0;
    cout<< "Najveci element niza: " << indeks(polje, k, n) << endl;
 }

Poruka je uređivana zadnji put sub 3.7.2010 21:50 (Floki).
 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice