Parametar funkcije struktura ? (početnik)

1

Parametar funkcije struktura ? (početnik)

offline
  • Pridružio: 13 Maj 2005
  • Poruke: 41
  • Gde živiš: Čačak

Da li je moguće napraviti funkciju u C++ koja kao parametre uzima int promenljivu i niz tipa struct ?
Npr.                  int br;                   struct tip_strukture { char ime[30];                                            int poJeni;  }niz[20];           /* Onda korisnik unese br takmičara, njihova imena */                    sort(br, niz  ???????);     /* pozovem sort */                /* Zatim još neki kod i zatvaram main() */            int sort (int num, ?????? )             {    int broj=num;               // sortira na osnovu poena  } // i kraj funkcije sort   

Znači konkretno interesuje me sintaksa. ŠTA i GDE pišem prilikom deklaracije, definicije, poziva funkcije (unutar, zagrade) i gde u programu deklarišem ovakvu funkciju. I još samo ovo, kako da korisnik upiše ime i prezime sa space-om između pošto sa char ime[] to nemože (završava unos kada se pritisne space a prezime upiše u sledeće ime ). Unapred hvala. Wink



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

int sort (int num, struct tip_strukture niz[] )
ako se ne varam...



offline
  • mr_W 
  • Počasni građanin
  • Pridružio: 22 Mar 2004
  • Poruke: 835

Ako ga prenosis funkciji koja treba da ga menja (taj sort), onda moraš parametar da preneseš po referenci, ili kao pointer..
Sad, pošto koristiš C++, onda možes kao referencu:

int sort(int num, tip_strukture &niz[]);

Btw, u C++ ne moramo pisati struct tip_strukture, jer su sve strukture i klase implicitno typedef na svoje ime..

(nekad se u C-u pisalo
struct a_st { int a, b; };
typedef a_st A;

ali u C++-u moze jednostavno
struct A { int a, b; };

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

hmmmmmmm...
mislim da mu ne treba &

parametar struct tip_strukture niz[] prima pointer na niz, a ne ceo sadrzaj niza...
prenosi se samo pointer

tako da, podaci koji se izmene u funkciji - nisu lokalni, vec se podaci menjaju tamo gde i jeste pravi niz.

ne pravi se kopija niza

offline
  • Pridružio: 13 Maj 2005
  • Poruke: 41
  • Gde živiš: Čačak

@mr_W sort() mi ne menja elemente strukture već ih samo upoređuje jedan sa drugim pa ih po veličini poena dodeljuje novoj strukturi tipa_strukture koju posle... na ekran.
Neće da šljaka sa int sort(int num, tip_strukture &niz[]); kaže nizovi referenci su nedozvoljeni.
Kod mene bar mora da se navede tip_strukture (Microsoft Visual C++ 5.0), u protivnom javlja grešku.

@Peca Sa struct tip_strukture niz[] prijavljuje grešku u liniji u kojoj pozivam sort(). Kaže nije očekivao ovaj tip tip_strukture.

Da šaljem ceo kod Question

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

salji samo liniju u kojoj pozivas funkciju

offline
  • Pridružio: 13 Maj 2005
  • Poruke: 41
  • Gde živiš: Čačak

 SORT(brKL,struct klub_podaci klub1);

greška : error C2226: syntax error : unexpected type 'klub_podaci'

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

pa ne poziva se tako Smile
probaj samo
SORT (brKL, klubl);
ako je klubl niz

offline
  • Pridružio: 13 Maj 2005
  • Poruke: 41
  • Gde živiš: Čačak

Wink Joj prijatelju probao sam milion varijacija ali nije prošlo bez grešaka (njihov broj je samo varirao). Vidi ovo :
SORT(brKL,klub1);
error C2664: 'SORT' : cannot convert parameter 2 from 'struct main::klub_podaci [24]' to 'struct klub_podaci'

A klub1 jeste niz od 24 člana.

offline
  • Pridružio: 17 Mar 2004
  • Poruke: 293
  • Gde živiš: UK

Ako je josh aktuelna tema...

Proble ti je u neuparenosti definicije funkcije i parametara koje prenosish.
Trebalo bi neshto ovako :
struct MojaStruktura {    //... something } niz_struktura[20]; void sort (int velicina_niza, const MojaStruktura * niz) {   // ovde pristupash nizu struktura najnormalnije sa niz[0], niz[1]... } //... ovde ide tvoj kod ... sort (20, niz_struktura);

Ko je trenutno na forumu
 

Ukupno su 550 korisnika na forumu :: 11 registrovanih, 3 sakrivenih i 536 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Bluper, BORUTUS, havoc995, milenko crazy north, repac, Romibrat, sap, slonic_tonic, SR-3m, stalja, wizzardone