Strukture u C-u

poruka: 15
|
čitano: 9.624
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Strukture u C-u

Htio bih vas samo pitati kako otprilike funkcionira vraćanje strukture kao jedne od varijabli funkcije. I dali bi točna naredba bila ovakva

ako smo prethodno u glavnom programu strukturirali (deklarirali strukturu tog tipa)

struct igrac {

char ime [40];

char prezime [40];

}

 

 

.... f-ja( struct igrac novi){

 

 

fprintf(f, "%s%s", novi.ime, novi.prezime);

 

 

}

Poruka je uređivana zadnji put sub 25.4.2009 8:51 (Riteh0201).
 
0 0 hvala 0
17 godina
protjeran
offline
RE: Strukture u C-u

Zavisi kako vraćaš. Možeš ovako:

 

struct igrac {

    char ime [40];

    char prezime [40];

}

 

struct igrac f(){.. // vraćanje preko povratne vrijednosti

    struct igrac pom;

    ...

    return pom;

}

 

ili

 

void f(struct igrac* p){  // call by value

    strcpy(p->ime, "neko ime");

}

16 godina
neaktivan
offline
RE: Strukture u C-u

E hvala samo pitanje jel ovo gore dobro napisano i dal mogu strukturu isprintat tj. ispisat odjednon da ne moran svaki dio zasebno?

17 godina
protjeran
offline
RE: Strukture u C-u

Što je li točno napisano? Što točno želiš postići?

 

Glede ispisa.. Mora se pisati nova funkcija ukoliko želiš da se sve ispiše odjednom. Samo od sebe ne može.

16 godina
neaktivan
offline
RE: Strukture u C-u

ovaj gore fprintf želin postić da se u datoteku upiše ono iz strukture

17 godina
protjeran
offline
RE: Strukture u C-u

void Zapis_dat(struct igrac novi){

    FILE* f;

    f = fopen("datoteka.txt", "w"); // obaviti provjeru...

    fprintf(f, "%s\n%s\n", novi.ime, novi.prezime);

    fclose(f);

}

 

 

16 godina
neaktivan
offline
RE: Strukture u C-u

Hvala to sam ustvario i mislio da će radit da uvijek obavin provjeru i kreiran datoteku.

Usput još jedno pitanje može... Zašto mi ne program ovako:

Do petlja je dobro napravljena za unos svakog polja nisan jedino cijelu napisao ali uglavnon unosi u strukturu novi u svako polje neš.

I trebam ubacit u ovu funkciju da mi ako uspješno unese igraca vraća 0, a neuspješno -1. Sad koji bi mogao bit razlog da unese neuspješno tj. ne unese ne razumijen to baš. A triban to postavit ka uvjet. I dal triban opet otvarat datoteku u f-ji ako sam ju već otvorio u gl. programu.

Oprostite na pilanju al eto dosta mi je važno to pa bih želio razumjeti.

F-ja bi trebala unosit strukturu na kraj datoteke.

 

 

int main (){

 

struct igrac {

char ime [40];

char prezime [40];

char reprezentacija [60];

int minutaza;

int golovi;

}

FILE *f;

struct igrac novi;

f = fopen ("euro", "a+");

 

do {

 

scanf ("%s", novi. ime);

(....)

 

 

noviIgrac (f, struct igrac novi);

 

}while(...)

 

return 0;

}

 

int noviIgrac (FILE *f, struct igrac novi){

fseek(f, 0, SEEK_END);

fprintf(f, "%s#%s#%s#%d#%d", novi.ime, novi.prezime, novi.reprezentacija, novi.minutaza, novi.golovi);

 

 

}

Poruka je uređivana zadnji put sub 25.4.2009 13:17 (Riteh0201).
17 godina
protjeran
offline
RE: Strukture u C-u

Razlog? Pa.. korisnik taj program možda pokreće s cd-a. Po cd-u se ne može direktno pisati i tu će biti greška. Također, možda medij po kojemu se piše odjednom nije dostupan (izvađen stick) i sl..

 

I ne vidim zašto bi datoteku otvarao na više mjesta. Dovoljno je sve napraviti samo u toj funkciji koja treba da upiše podatak (strukturu).

Poruka je uređivana zadnji put sub 25.4.2009 13:23 (Tracer).
16 godina
neaktivan
offline
RE: Strukture u C-u

a dal postoji razlog zaš ne mogu ovo iskompajlirat tj.  zaš mi javlja grešku kod parametra structure u samoj funkciji javlja grešku kod samog ovog reda... di počinje funkcija i da li je dobro postavljen parametar strukture i kod deklaracije i pozivanja za f-ju?

17 godina
protjeran
offline
Strukture u C-u

Umjesto

 

 

noviIgrac (f, struct igrac novi);

 

napiši

 

 

noviIgrac (f, novi);

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
RE: Strukture u C-u

Probao al mi javlja grešku... Kod deklariranje funkcije tj. kod ovog

int noviIgrac (FILE *f,struct igrac novi)

šta bi mogla bit greška?

Jer zaista ne znan...

Poruka je uređivana zadnji put sub 25.4.2009 13:49 (Riteh0201).
17 godina
protjeran
offline
Strukture u C-u

Prvo,

 

int noviIgrac (FILE *f, struct igrac novi){

fseek(f, 0, SEEK_END);

fprintf(f, "%s#%s#%s#%d#%d", novi.ime, novi.prezime, novi.reprezentacija, novi.minutaza, novi.golovi);

 

 

}

 

Ovo bi trebalo biti iznad main funkcije jer nigdje nisi napisao prototip ovoga. A drugo, u ovoj funkciji fali return pošto funkcija vraća int.

Poruka je uređivana zadnji put sub 25.4.2009 13:51 (Tracer).
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
RE: Strukture u C-u

U originalu ima return tu ga nisan napisao. Hvala puno:D Koji sam ja NOOBČINA.... jao budale... koja greška trivijalna... sorry na pilanju još jednon...

Poruka je uređivana zadnji put sub 25.4.2009 14:03 (Riteh0201).
15 godina
neaktivan
offline
RE: Strukture u C-u

Ja ne znam riješit zadatak sa strukturama.

Definirati strukturu valjak, napisati funkciju koja prima niz struktura valjak,te vraća valjak najmanje visine.

U glavnom programu deklarirati i proizvoljno inicijalizirati nit,te pozvati funkciju i izračunati vrijednost volumena valjak kojeg

je funkcija vratila.  ufff.

Da li mi možete pomoći sa ovim zadatkom?

16 godina
neaktivan
offline
RE: Strukture u C-u
Milensons kaže...

Ja ne znam riješit zadatak sa strukturama.

Definirati strukturu valjak, napisati funkciju koja prima niz struktura valjak,te vraća valjak najmanje visine.

U glavnom programu deklarirati i proizvoljno inicijalizirati nit,te pozvati funkciju i izračunati vrijednost volumena valjak kojeg

je funkcija vratila.  ufff.

Da li mi možete pomoći sa ovim zadatkom?

 

Ajmo po redu :D

 

Struktura valjak bi treba čuvati dva pozitivna doublea, jedan koji označava visinu, i jedan koji označava polumjer baze.

 

Niz deklariramo kao i svaki niz, npr sa

Valjak niz[100];

za niz sa maximalno 100 valjaka (ili dinamička alokacija ako se prvo učita koliko će ih bit).

U mainu onda sa for petljom popunimo podatke svakog valjka, učitamo mu visinu i radijus.

 

funkcija koja nam treba ima prototip:

Valjak funkcija(Valjak niz[], int duljina)

 

U njoj se nađe valjak najmanje visine, i njega se vrati.

U glavnom programu, nakon što pozovemo funkciju, izračunamo volumen tog valjka po formuli:

V=r2 pi*v , gdje je r polumjer baze, a v visina.

 

To se ispiše i to je to :D

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice