Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 2:42 sub, 13. 6. 2009 Naslov: |
|
|
Ne vidim problem. :| Ucitao sam a,1 i b,5 i ispisao mi je da je prosjek 3 i da je b skuplji od prosjeka. :) Sto si ti ucitala da ti ne radi? :-k
Usput, [tt]prosjek[/tt] je [tt]double[/tt], pa ti ne treba cast na [tt]double[/tt] u dijeljenju. :) Takodjer, [tt]%[color=red]l[/color]g[/tt] se koristi kod [tt]scanf()[/tt], ali ne i kod [tt]printf()[/tt]; za ispis je dosta [tt]%g[/tt]. :) No, niti jedno od ovoga nije greska... samo sitni viskovi. ;)
Ne vidim problem. Ucitao sam a,1 i b,5 i ispisao mi je da je prosjek 3 i da je b skuplji od prosjeka. Sto si ti ucitala da ti ne radi?
Usput, prosjek je double, pa ti ne treba cast na double u dijeljenju. Takodjer, %lg se koristi kod scanf(), ali ne i kod printf(); za ispis je dosta %g. No, niti jedno od ovoga nije greska... samo sitni viskovi.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
lucika Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: 
|
|
[Vrh] |
|
Luuka Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54) Postovi: (925)16
Spol: 
Lokacija: Hakuna Matata
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 11:33 sub, 13. 6. 2009 Naslov: |
|
|
Lucika, krivo ucitavas. :ccc: Pazi, ti ime ucitavas sa
[tt]scanf(" [b]%[^\n][/b]", naziv);[/tt]
sto znaci "ucitavaj do kraja linije". :? Dakle, umjesto
[code:1]fico 100
mercedes 300
kraj[/code:1]
trebas ucitavati
[code:1]fico
100
mercedes
300
kraj[/code:1]
8)
Lucika, krivo ucitavas. Pazi, ti ime ucitavas sa
scanf(" %[^\n]", naziv);
sto znaci "ucitavaj do kraja linije". Dakle, umjesto
Kod: | fico 100
mercedes 300
kraj |
trebas ucitavati
Kod: | fico
100
mercedes
300
kraj |
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 12:54 sub, 13. 6. 2009 Naslov: |
|
|
tj, nakon što upišeš ime, moraš lupit [tt]Enter[/tt] i tek onda cijenu
e da, vsego, jesi probao odmah upisati "kraj"? javi da je [tt]prosjek = -1.#IND[/tt]. ne kužim zašto. jel nebi u tom slučaju prosjek trebao ostati na nuli, mislim, pa na nulu je inicijaliziran.
tj, nakon što upišeš ime, moraš lupit Enter i tek onda cijenu
e da, vsego, jesi probao odmah upisati "kraj"? javi da je prosjek = -1.#IND. ne kužim zašto. jel nebi u tom slučaju prosjek trebao ostati na nuli, mislim, pa na nulu je inicijaliziran.
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
Milojko Forumaš(ica)


Pridružen/a: 07. 11. 2008. (14:57:52) Postovi: (453)16
Spol: 
Lokacija: Hilbertov hotel
|
Postano: 13:01 uto, 16. 6. 2009 Naslov: |
|
|
[code:1]razlomak *deleten (razlomak *first, int n) {
int i = 0;
razlomak *pom;
if (!first) return NULL;
else {
pom = (razlomak*)malloc(sizeof(razlomak));
pom = first;
first = pom->next;
free(pom);
}
for (pom = first; pom; pom = pom->next) {
++i;
razlomak *tmp;
if (!(i%n)) {
tmp = (razlomak*)malloc(sizeof(razlomak));
tmp = pom;
pom = tmp->next;
free(tmp);
}
}
return first;
}[/code:1]
već neko vrijeme mi ovo čudo ne funkcionira
treba obrisati sveki n-ti iz liste
natipkao sam sad i drug rješenje. stižu u attachu obadva. nijedno ni drugo ne valja.
[size=9][color=#999999]Added after 6 minutes:[/color][/size]
original je obrisao prvoga, zatim svakom n-tom brojnik postavio na nulu.
ovaj drugi, 7,5.alt piši u brojnik svašta što nađe na nekoj, čini se, nealociranoj memoriji za brojnik
Kod: | razlomak *deleten (razlomak *first, int n) {
int i = 0;
razlomak *pom;
if (!first) return NULL;
else {
pom = (razlomak*)malloc(sizeof(razlomak));
pom = first;
first = pom->next;
free(pom);
}
for (pom = first; pom; pom = pom->next) {
++i;
razlomak *tmp;
if (!(i%n)) {
tmp = (razlomak*)malloc(sizeof(razlomak));
tmp = pom;
pom = tmp->next;
free(tmp);
}
}
return first;
} |
već neko vrijeme mi ovo čudo ne funkcionira
treba obrisati sveki n-ti iz liste
natipkao sam sad i drug rješenje. stižu u attachu obadva. nijedno ni drugo ne valja.
Added after 6 minutes:
original je obrisao prvoga, zatim svakom n-tom brojnik postavio na nulu.
ovaj drugi, 7,5.alt piši u brojnik svašta što nađe na nekoj, čini se, nealociranoj memoriji za brojnik
_________________ Sedam je prost broj
Bolonja je smeće i to pod hitno treba mijenjat
Description: |
|
 Download |
Filename: |
7,5.c |
Filesize: |
1.79 KB |
Downloaded: |
117 Time(s) |
Description: |
|
 Download |
Filename: |
7,5.alt.c |
Filesize: |
1.73 KB |
Downloaded: |
95 Time(s) |
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 13:14 uto, 16. 6. 2009 Naslov: |
|
|
Cemu ovi [tt]malloc()[/tt]-i sluze ako [b]BRISES[/b] iz liste?! :shock: Da alociras memoriju koju odmah u iducoj lajni "pogubis", tj. izgubis pointer na tu memoriju, ali ona ostane zauzeta? :ccc:
Nadalje, prvi i bilo koji drugi element se ne brisu isto. :? Ti oslobodis [tt]tmp[/tt] i [tt]pom[/tt] nekako pomaknes... probaj nacrtati listu i onda po crtezu raditi sto radi tvoj program. :?
Brisanje iz liste je objasnjeno u dostupnim materijalima, pa necu sada raspisivati kako se to radi. :)
Cemu ovi malloc()-i sluze ako BRISES iz liste?! Da alociras memoriju koju odmah u iducoj lajni "pogubis", tj. izgubis pointer na tu memoriju, ali ona ostane zauzeta?
Nadalje, prvi i bilo koji drugi element se ne brisu isto. Ti oslobodis tmp i pom nekako pomaknes... probaj nacrtati listu i onda po crtezu raditi sto radi tvoj program.
Brisanje iz liste je objasnjeno u dostupnim materijalima, pa necu sada raspisivati kako se to radi.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
lucika Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: 
|
Postano: 0:57 čet, 18. 6. 2009 Naslov: |
|
|
ja sam to ovako:
[code:1]
#include<stdio.h>
#include<stdlib.h>
typedef struct _cvor{
int brojnik, nazivnik;
struct _cvor *next;
} cvor;
cvor *del( cvor *L, int n){
cvor *tren, *preth=NULL;
int br=0;
if(n==1){
for(tren=L; tren!=NULL; tren=tren->next){
cvor *temp=L->next;
free(L);
L=temp;
}
}
else{
for (tren=L; tren!=NULL;){
br++;
if(br%n==0){
preth->next=tren->next;
free(tren);
tren=preth->next;
}
else{
preth=tren;
tren=tren->next;
}
}
}
}
cvor *dodajNaPocetak( cvor *L, int x, int y )
{
cvor *novi;
novi = ( cvor * ) malloc( sizeof( cvor ) );
novi->brojnik = x;
novi->nazivnik = y;
novi->next = L;
L = novi;
return L;
}
int main(){
cvor *L=NULL, *tren;
int n;
scanf("%d", &n);
while(1){
int x, y;
scanf("%d/%d", &x, &y);
if(y==0) break;
L=dodajNaPocetak(L, x, y);
}
for(tren=L; tren!=NULL; tren=tren->next)
printf("%d/%d ", tren->brojnik, tren->nazivnik);
printf("\n");
del(L, n);
for(tren=L; tren!=NULL; tren=tren->next)
printf("%d/%d ", tren->brojnik, tren->nazivnik);
printf("\n");
scanf("%%");
return 0;
}
[/code:1]
8)
u biti tek sad vidim da ne radi za n=1...hm
ja sam to ovako:
Kod: |
#include<stdio.h>
#include<stdlib.h>
typedef struct _cvor{
int brojnik, nazivnik;
struct _cvor *next;
} cvor;
cvor *del( cvor *L, int n){
cvor *tren, *preth=NULL;
int br=0;
if(n==1){
for(tren=L; tren!=NULL; tren=tren->next){
cvor *temp=L->next;
free(L);
L=temp;
}
}
else{
for (tren=L; tren!=NULL;){
br++;
if(br%n==0){
preth->next=tren->next;
free(tren);
tren=preth->next;
}
else{
preth=tren;
tren=tren->next;
}
}
}
}
cvor *dodajNaPocetak( cvor *L, int x, int y )
{
cvor *novi;
novi = ( cvor * ) malloc( sizeof( cvor ) );
novi->brojnik = x;
novi->nazivnik = y;
novi->next = L;
L = novi;
return L;
}
int main(){
cvor *L=NULL, *tren;
int n;
scanf("%d", &n);
while(1){
int x, y;
scanf("%d/%d", &x, &y);
if(y==0) break;
L=dodajNaPocetak(L, x, y);
}
for(tren=L; tren!=NULL; tren=tren->next)
printf("%d/%d ", tren->brojnik, tren->nazivnik);
printf("\n");
del(L, n);
for(tren=L; tren!=NULL; tren=tren->next)
printf("%d/%d ", tren->brojnik, tren->nazivnik);
printf("\n");
scanf("%%");
return 0;
}
|
u biti tek sad vidim da ne radi za n=1...hm
|
|
[Vrh] |
|
GauSs_ Moderator


Pridružen/a: 28. 01. 2004. (21:01:17) Postovi: (53C)16
Spol: 
Lokacija: 231
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 10:02 čet, 18. 6. 2009 Naslov: |
|
|
Pa, propust je sto to ne radi dobro:
[code:1]for(tren = L; tren != NULL; tren = tren->next){
cvor *temp = L->next;
free(L);
L = temp;
}[/code:1]
Dakle, ovo [tt]tren = tren->next[/tt] ce nakon prvog koraka petlje dereferencirati [tt]tren[/tt] koji je u tom trenutku isto sto i [tt]L[/tt] koji je dealociran... :?
Brisanje cijele liste pise u skripti, pa necu prepisivati ovdje. :)
Pa, propust je sto to ne radi dobro:
Kod: | for(tren = L; tren != NULL; tren = tren->next){
cvor *temp = L->next;
free(L);
L = temp;
} |
Dakle, ovo tren = tren→next ce nakon prvog koraka petlje dereferencirati tren koji je u tom trenutku isto sto i L koji je dealociran...
Brisanje cijele liste pise u skripti, pa necu prepisivati ovdje.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
lucika Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: 
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
lucika Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: 
|
|
[Vrh] |
|
lucika Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: 
|
Postano: 23:41 pet, 19. 6. 2009 Naslov: |
|
|
zašto nema rješenja od 5. zadatka iz prošlogodišnjeg kolokvija na webu? :(
dakle, zadatak glasi:
"Napišite modiciranu definiciju tipa podatka duzina iz 2. zadatka tako da taj tip sada reprezentira jedan čvor
vezane liste dužina. Nakon toga napišite funkciju izbaci koja će iz vezane liste izbaciti sve one dužine čija duljina
je jednaka duljini dužine koja se nalazi neposredno ispred u vezanoj listi.
[color=red]U istoj funkciji, nakon izbacivanja na početak liste treba dodati novi čvor koji će predstavljati dužinu čija je
duljina jednaka broju izbačenih čvorova. (Vrhove odaberite po želji.)[/color]
Napišite primjer poziva funkcije iz glavnog programa."
ne kužim crveni dio...ok, broj izbačenih čvorova mogu dobit tako da svaki put kad izbacujem jedan čvor - povečam brojač za jedan.
i pošto piše da vrhove mogu proizvoljno odabrat- recimo da su mi x1=y1=0, kak da odredim ostala 2 vrha a da duljina bude ova koja se traži :?:
i jel mi dobar barem ovaj dio fje koji izbacuje:
[code:1]
typedef struct _cvor{
double x0, y0, x1, y1;
struct _cvor *next;
}cvor; //duzina
double duljina(cvor *d){
double z=(d->x0 - d->x1)* (d->x0 - d->x1) + (d->y0 -d->y1)* (d->y0 - d->y1);
return sqrt(z);
}
cvor *izbaci(cvor *L){
cvor *tren;
tren=L;
int br=0;
while(tren->next!=NULL){
if( duljina(tren) == duljina(tren->next) ){
br++;
tren->next=tren->next->next;
free(tren->next);
}
else{
tren=tren->next;
}
}
return L;
}
[/code:1]
zašto nema rješenja od 5. zadatka iz prošlogodišnjeg kolokvija na webu?
dakle, zadatak glasi:
"Napišite modiciranu definiciju tipa podatka duzina iz 2. zadatka tako da taj tip sada reprezentira jedan čvor
vezane liste dužina. Nakon toga napišite funkciju izbaci koja će iz vezane liste izbaciti sve one dužine čija duljina
je jednaka duljini dužine koja se nalazi neposredno ispred u vezanoj listi.
U istoj funkciji, nakon izbacivanja na početak liste treba dodati novi čvor koji će predstavljati dužinu čija je
duljina jednaka broju izbačenih čvorova. (Vrhove odaberite po želji.)
Napišite primjer poziva funkcije iz glavnog programa."
ne kužim crveni dio...ok, broj izbačenih čvorova mogu dobit tako da svaki put kad izbacujem jedan čvor - povečam brojač za jedan.
i pošto piše da vrhove mogu proizvoljno odabrat- recimo da su mi x1=y1=0, kak da odredim ostala 2 vrha a da duljina bude ova koja se traži
i jel mi dobar barem ovaj dio fje koji izbacuje:
Kod: |
typedef struct _cvor{
double x0, y0, x1, y1;
struct _cvor *next;
}cvor; //duzina
double duljina(cvor *d){
double z=(d->x0 - d->x1)* (d->x0 - d->x1) + (d->y0 -d->y1)* (d->y0 - d->y1);
return sqrt(z);
}
cvor *izbaci(cvor *L){
cvor *tren;
tren=L;
int br=0;
while(tren->next!=NULL){
if( duljina(tren) == duljina(tren->next) ){
br++;
tren->next=tren->next->next;
free(tren->next);
}
else{
tren=tren->next;
}
}
return L;
}
|
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
Postano: 0:12 sub, 20. 6. 2009 Naslov: |
|
|
[quote="lucika"]zašto nema rješenja od 5. zadatka iz prošlogodišnjeg kolokvija na webu? :([/quote]
Zato jer asistent koji je to zadavao nije napisao rjesenje. :D Nesto mozete i sami rijesiti. :tapsh:
[quote="lucika"]"Napišite modiciranu definiciju tipa podatka duzina iz 2. zadatka tako da taj tip sada reprezentira jedan čvor
vezane liste dužina. Nakon toga napišite funkciju izbaci koja će iz vezane liste izbaciti sve one dužine čija duljina
je jednaka duljini dužine koja se nalazi neposredno ispred u vezanoj listi.
[color=red]U istoj funkciji, nakon izbacivanja na početak liste treba dodati novi čvor koji će predstavljati dužinu čija je
duljina jednaka broju izbačenih čvorova. (Vrhove odaberite po želji.)[/color]
Napišite primjer poziva funkcije iz glavnog programa."
ne kužim crveni dio...ok, broj izbačenih čvorova mogu dobit tako da svaki put kad izbacujem jedan čvor - povečam brojač za jedan.
i pošto piše da vrhove mogu proizvoljno odabrat- recimo da su mi x1=y1=0, kak da odredim ostala 2 vrha a da duljina bude ova koja se traži :?:[/quote]
Ako izbacis [tt]d[/tt] cvorova, nova duzina moze biti [tt](0,0)-(0,d)[/tt] ili [tt](0,0)-(d,0)[/tt] ili [tt](-d/2,0)-(d/2,0)[/tt] ili [tt](0,d/sqrt(2))-(d/sqrt(2),0)[/tt] ili... 8)
[quote="lucika"]i jel mi dobar barem ovaj dio fje koji izbacuje:[/quote]
Ne, sorry. :ccc:
[code:1] tren->next=tren->next->next;
free(tren->next);[/code:1]
Dakle, ti kazes da [tt]tren->next[/tt] pokazuje na sljedbenika onoga koga zelis obrisati i onda [b]TU memoriju[/b] oslobodis. :joooj:
Skiciraj si listu i radi to korak po korak, pa ces vidjeti. :)
To treba ovako:
[code:1] cvor *tmp = tren->next;
tren->next = tren->next->next;
free(tmp);[/code:1]
8)
lucika (napisa): | zašto nema rješenja od 5. zadatka iz prošlogodišnjeg kolokvija na webu?  |
Zato jer asistent koji je to zadavao nije napisao rjesenje. Nesto mozete i sami rijesiti.
lucika (napisa): | "Napišite modiciranu definiciju tipa podatka duzina iz 2. zadatka tako da taj tip sada reprezentira jedan čvor
vezane liste dužina. Nakon toga napišite funkciju izbaci koja će iz vezane liste izbaciti sve one dužine čija duljina
je jednaka duljini dužine koja se nalazi neposredno ispred u vezanoj listi.
U istoj funkciji, nakon izbacivanja na početak liste treba dodati novi čvor koji će predstavljati dužinu čija je
duljina jednaka broju izbačenih čvorova. (Vrhove odaberite po želji.)
Napišite primjer poziva funkcije iz glavnog programa."
ne kužim crveni dio...ok, broj izbačenih čvorova mogu dobit tako da svaki put kad izbacujem jedan čvor - povečam brojač za jedan.
i pošto piše da vrhove mogu proizvoljno odabrat- recimo da su mi x1=y1=0, kak da odredim ostala 2 vrha a da duljina bude ova koja se traži  |
Ako izbacis d cvorova, nova duzina moze biti (0,0)-(0,d) ili (0,0)-(d,0) ili (-d/2,0)-(d/2,0) ili (0,d/sqrt(2))-(d/sqrt(2),0) ili...
lucika (napisa): | i jel mi dobar barem ovaj dio fje koji izbacuje: |
Ne, sorry.
Kod: | tren->next=tren->next->next;
free(tren->next); |
Dakle, ti kazes da tren→next pokazuje na sljedbenika onoga koga zelis obrisati i onda TU memoriju oslobodis.
Skiciraj si listu i radi to korak po korak, pa ces vidjeti.
To treba ovako:
Kod: | cvor *tmp = tren->next;
tren->next = tren->next->next;
free(tmp); |
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju. 
|
|
[Vrh] |
|
lucika Forumaš(ica)


Pridružen/a: 22. 11. 2007. (17:52:27) Postovi: (12F)16
Spol: 
|
Postano: 0:37 sub, 20. 6. 2009 Naslov: |
|
|
[code:1]
Ako izbacis d cvorova, nova duzina moze biti (0,0)-(0,d) ili (0,0)-(d,0) ili (-d/2,0)-(d/2,0) ili (0,d/sqrt(2))-(d/sqrt(2),0) ili... Cool
[/code:1]
vidi stvarno...ma znala sam da je neš s nulama najjednostavnije :)
[code:1]
Dakle, ti kazes da tren->next pokazuje na sljedbenika onoga koga zelis obrisati i onda TU memoriju oslobodis. Joj, joj, joj,... JOOOJ!
Skiciraj si listu i radi to korak po korak, pa ces vidjeti. Smile
[/code:1]
već po neznam koji put radim istu grešku, jao meni!!!
niš mi ne preostaje nego crtati, crtati i crtati :wink:
fala ljepa :D
Kod: |
Ako izbacis d cvorova, nova duzina moze biti (0,0)-(0,d) ili (0,0)-(d,0) ili (-d/2,0)-(d/2,0) ili (0,d/sqrt(2))-(d/sqrt(2),0) ili... Cool
|
vidi stvarno...ma znala sam da je neš s nulama najjednostavnije
Kod: |
Dakle, ti kazes da tren->next pokazuje na sljedbenika onoga koga zelis obrisati i onda TU memoriju oslobodis. Joj, joj, joj,... JOOOJ!
Skiciraj si listu i radi to korak po korak, pa ces vidjeti. Smile
|
već po neznam koji put radim istu grešku, jao meni!!!
niš mi ne preostaje nego crtati, crtati i crtati
fala ljepa
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
malena Forumaš(ica)

Pridružen/a: 27. 03. 2009. (16:43:42) Postovi: (62)16
Spol: 
Lokacija: ...
|
Postano: 9:14 sub, 20. 6. 2009 Naslov: |
|
|
pozdrav, je li problem pogledati sljedeca dva koda vidjela san slican kod na forumu ali se ne snalazin bas u tudim kodovima pa ako netko samo moze prepraviti moj...
tnx
[size=9][color=#999999]Added after 43 seconds:[/color][/size]
[code:1]#include <stdio.h>
#include <stdlib.h>
typedef struct _razlomak{
int br, naz;
struct _razlomak *next;
}razlomak;
razlomak *ubaci(razlomak *prvi, int x, int y){
razlomak *n=(razlomak*)malloc(sizeof(razlomak));
n->br=x;
n->naz=y;
n->next=prvi;
return n;
}
razlomak *deleten(razlomak *prvi, int n){
razlomak *pom, *del;
int i;
pom=prvi;
prvi=prvi->next;
free(pom);
if(!prvi) return NULL;
else{
pom=prvi;
i=1;
while(pom){
if(i%n==0){
del=pom;
pom=pom->next;
free(del);
i++;
}
else{
pom=pom->next;
i++;
}
}
}
return prvi;
}
void ispis(razlomak *f){
for(; f; f=f->next){
printf("Br= %d ,Naz= %d\n", f->br, f->naz);
}
}
int main(){
razlomak *x=NULL;
int n;
x=ubaci(x, 2, 3);
x=ubaci(x, 4, 5);
x=ubaci(x, 5, 6);
x=ubaci(x, 6, 7);
x=ubaci(x, 7, 8);
printf("Koji po redu brisemo:\n");
scanf("%d", &n);
printf("\n\nPrije deleten:\n");
ispis(x);
deleten(x, n);
printf("\nNakon deleten:\n");
if(x==NULL) printf("\nOde cila lista!\n");
else ispis(x);
system("PAUSE");
return 0;
}
[/code:1]
[size=9][color=#999999]Added after 43 seconds:[/color][/size]
[code:1]#include <stdio.h>
#include <stdlib.h>
typedef struct _razlomak{
int br, naz;
struct _razlomak *next;
}razlomak;
razlomak *ubaci(razlomak *f, int x, int y){
razlomak *t=(razlomak*)malloc(sizeof(razlomak));
t->br=x;
t->naz=y;
t->next=f;
return t;
}
razlomak *deleteneg(razlomak *p){
razlomak *pom, *del;
if(p->br<0 || p->naz<0){
del=p;
p=p->next;
free(del);
}
pom=p;
while(pom->next){
if(pom->next->br<0 || pom->next->naz<0){
del=pom->next;
pom=del->next;
free(del);
}
pom=pom->next;
}
return p;
}
void ispis(razlomak *f){
for(; f; f=f->next){
printf("Br= %d / Naz= %d\n", f->br, f->naz);
}
}
int main(){
razlomak *x=NULL;
x=ubaci(x, 2, 3);
x=ubaci(x, -3, 5);
x=ubaci(x, 4, -7);
x=ubaci(x, 1, 8);
printf("\n\nPrije brisanja negativnih:\n");
ispis(x);
deleteneg(x);
printf("\nNakon brisanja negativnih:\n");
ispis(x);
system("PAUSE");
return 0;
}
[/code:1]
pozdrav, je li problem pogledati sljedeca dva koda vidjela san slican kod na forumu ali se ne snalazin bas u tudim kodovima pa ako netko samo moze prepraviti moj...
tnx
Added after 43 seconds:
Kod: | #include <stdio.h>
#include <stdlib.h>
typedef struct _razlomak{
int br, naz;
struct _razlomak *next;
}razlomak;
razlomak *ubaci(razlomak *prvi, int x, int y){
razlomak *n=(razlomak*)malloc(sizeof(razlomak));
n->br=x;
n->naz=y;
n->next=prvi;
return n;
}
razlomak *deleten(razlomak *prvi, int n){
razlomak *pom, *del;
int i;
pom=prvi;
prvi=prvi->next;
free(pom);
if(!prvi) return NULL;
else{
pom=prvi;
i=1;
while(pom){
if(i%n==0){
del=pom;
pom=pom->next;
free(del);
i++;
}
else{
pom=pom->next;
i++;
}
}
}
return prvi;
}
void ispis(razlomak *f){
for(; f; f=f->next){
printf("Br= %d ,Naz= %d\n", f->br, f->naz);
}
}
int main(){
razlomak *x=NULL;
int n;
x=ubaci(x, 2, 3);
x=ubaci(x, 4, 5);
x=ubaci(x, 5, 6);
x=ubaci(x, 6, 7);
x=ubaci(x, 7, 8);
printf("Koji po redu brisemo:\n");
scanf("%d", &n);
printf("\n\nPrije deleten:\n");
ispis(x);
deleten(x, n);
printf("\nNakon deleten:\n");
if(x==NULL) printf("\nOde cila lista!\n");
else ispis(x);
system("PAUSE");
return 0;
}
|
Added after 43 seconds:
Kod: | #include <stdio.h>
#include <stdlib.h>
typedef struct _razlomak{
int br, naz;
struct _razlomak *next;
}razlomak;
razlomak *ubaci(razlomak *f, int x, int y){
razlomak *t=(razlomak*)malloc(sizeof(razlomak));
t->br=x;
t->naz=y;
t->next=f;
return t;
}
razlomak *deleteneg(razlomak *p){
razlomak *pom, *del;
if(p->br<0 || p->naz<0){
del=p;
p=p->next;
free(del);
}
pom=p;
while(pom->next){
if(pom->next->br<0 || pom->next->naz<0){
del=pom->next;
pom=del->next;
free(del);
}
pom=pom->next;
}
return p;
}
void ispis(razlomak *f){
for(; f; f=f->next){
printf("Br= %d / Naz= %d\n", f->br, f->naz);
}
}
int main(){
razlomak *x=NULL;
x=ubaci(x, 2, 3);
x=ubaci(x, -3, 5);
x=ubaci(x, 4, -7);
x=ubaci(x, 1, 8);
printf("\n\nPrije brisanja negativnih:\n");
ispis(x);
deleteneg(x);
printf("\nNakon brisanja negativnih:\n");
ispis(x);
system("PAUSE");
return 0;
}
|
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3562)16
Spol: 
Lokacija: /sbin/init
|
|
[Vrh] |
|
|