Poslao: 13 Maj 2005 17:55
|
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.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 13 Maj 2005 19:56
|
offline
- Peca
- 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...
|
|
|
|
Poslao: 13 Maj 2005 22:02
|
offline
- 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; };
|
|
|
|
Poslao: 13 Maj 2005 22:33
|
offline
- Peca
- 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
|
|
|
|
Poslao: 14 Maj 2005 18:04
|
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
|
|
|
|
Poslao: 14 Maj 2005 19:49
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
salji samo liniju u kojoj pozivas funkciju
|
|
|
|
Poslao: 14 Maj 2005 20:11
|
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'
|
|
|
|
Poslao: 14 Maj 2005 20:43
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
pa ne poziva se tako
probaj samo
SORT (brKL, klubl);
ako je klubl niz
|
|
|
|
Poslao: 14 Maj 2005 21:09
|
offline
- Pridružio: 13 Maj 2005
- Poruke: 41
- Gde živiš: Čačak
|
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.
|
|
|
|
Poslao: 20 Maj 2005 00:30
|
offline
- bNasty
- Građanin
- 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);
|
|
|
|