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 1174 korisnika na forumu :: 36 registrovanih, 6 sakrivenih i 1132 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: A.R.Chafee.Jr., Areal84, cinoeye, deLacy, DonRumataEstorski, dragoljub11987, galerija, Gall, hyla, jackreacher011011, Joco Skljoco, JOntra, Karla, Krusarac, laurusri, Leonov, mercedesamg, milos.cbr, MrNo, panonski mornar, repac, Ripanjac, sasa87, Srle993, Stoilkovic, styg, suton, Trpe Grozni, tubular, Tvrtko I, Vladko, wizzardone, xpforswodniw, ZetaMan, zixmix, šumar bk2