Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
smrtTrokutima Forumaš(ica)

Pridružen/a: 30. 12. 2010. (13:47:58) Postovi: (7)16
Spol: 
|
Postano: 22:04 sub, 15. 1. 2011 Naslov: x |
|
|
Imam tu 2 zadatka s nizovima... dosta sam ih provjeravala i popravljala al mi ih ne prihvaća... meni izgledaju sasvim u redu... jedino ako razmak nakon zadnjeg broja ne prihvaća... a kako mora biti razmak između brojeva, ne znam kako zadnji maknuti... ?
pa ako netko ima vremena, puno bi mi pomoglo... :D
Imam tu 2 zadatka s nizovima... dosta sam ih provjeravala i popravljala al mi ih ne prihvaća... meni izgledaju sasvim u redu... jedino ako razmak nakon zadnjeg broja ne prihvaća... a kako mora biti razmak između brojeva, ne znam kako zadnji maknuti... ?
pa ako netko ima vremena, puno bi mi pomoglo...
Description: |
|
 Download |
Filename: |
Nizovi 3.c |
Filesize: |
1.44 KB |
Downloaded: |
195 Time(s) |
Description: |
|
 Download |
Filename: |
Nizovi 1.c |
Filesize: |
1.17 KB |
Downloaded: |
185 Time(s) |
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3561)16
Spol: 
Lokacija: /sbin/init
|
Postano: 7:15 ned, 16. 1. 2011 Naslov: |
|
|
U [tt]Nizovi 1.c[/tt] se varijabla [tt]max[/tt] inicijalizira na krivu vrijednost. Recimo da je ucitan niz niz 17, 9, 19, 0, 3. Tada ce program inicijalizirati [tt]max[/tt] na vrijednost 17 i onda ce ispasti da je taj 17 najveci element niza djeljiv s 9 (a on uopce nije djeljiv s 9).
U [tt]Nizovi 3.c[/tt] je zanemaren dio zadatka koji kaze "ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 6, onda ih uspoređujete na uobičajeni način".
Ako nemas ideju kako rijesiti te stvari, sve su objasnjene na Forumu, pa treba samo malo potraziti.
Ubuduce, molim ne koristiti attachmente za ovakve stvari, nego kod zapakirajte u [tt][co[i][/i]de]...[/code][/tt]-blok.
U Nizovi 1.c se varijabla max inicijalizira na krivu vrijednost. Recimo da je ucitan niz niz 17, 9, 19, 0, 3. Tada ce program inicijalizirati max na vrijednost 17 i onda ce ispasti da je taj 17 najveci element niza djeljiv s 9 (a on uopce nije djeljiv s 9).
U Nizovi 3.c je zanemaren dio zadatka koji kaze "ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 6, onda ih uspoređujete na uobičajeni način".
Ako nemas ideju kako rijesiti te stvari, sve su objasnjene na Forumu, pa treba samo malo potraziti.
Ubuduce, molim ne koristiti attachmente za ovakve stvari, nego kod zapakirajte u [code]...[/code]-blok.
_________________ 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] |
|
nuclear Forumaš(ica)


Pridružen/a: 13. 11. 2011. (17:40:12) Postovi: (74)16
Spol: 
|
Postano: 18:31 sub, 24. 11. 2012 Naslov: |
|
|
Zadatak iz skripte (vježbe) 8.4.8. Napišite program koji učitava n prirodnih brojeva, te ispisuje produkt prostih.
Muči me zašto ako umjesto j ponovno upotrijebim i, program ne radi ispravno?
[code:1]#include <stdio.h>
int main (){
int n, i, x, prod=1, j;
printf("upisite prirodan broj n: \n");
scanf("%d", &n);
for(i=1; i<=n; i++){
int prost=0;
printf("unesite broj: \n");
scanf("%d", &x);
for(j=2; j<x; j++){
if(x%j==0) ++prost;}
if(prost==0) prod*=x;
}
printf("produkt prostih brojeva je %d", prod);
return 0;}[/code:1]
Zadatak iz skripte (vježbe) 8.4.8. Napišite program koji učitava n prirodnih brojeva, te ispisuje produkt prostih.
Muči me zašto ako umjesto j ponovno upotrijebim i, program ne radi ispravno?
Kod: | #include <stdio.h>
int main (){
int n, i, x, prod=1, j;
printf("upisite prirodan broj n: \n");
scanf("%d", &n);
for(i=1; i<=n; i++){
int prost=0;
printf("unesite broj: \n");
scanf("%d", &x);
for(j=2; j<x; j++){
if(x%j==0) ++prost;}
if(prost==0) prod*=x;
}
printf("produkt prostih brojeva je %d", prod);
return 0;} |
|
|
[Vrh] |
|
Shirohige Forumaš(ica)

Pridružen/a: 16. 11. 2012. (20:19:56) Postovi: (ED)16
Spol: 
|
Postano: 19:00 sub, 24. 11. 2012 Naslov: |
|
|
Pa imaš petlju unutar petlje, kad je i=1, ovaj unutarnji "j" brojač ide od 1 do j<x odnosno x-1. Kad dva puta koristiš "i", onda kod prvog prolaza, kad je i=1 za prvu petlju, onda u drugoj petlji "i" postaje x-1 tj. odvrti se druga petlja do kraja, a zatim nastupa opet gornja/prva for petlja koja povećava "i" za jedan, a to je zbog unutarnje petlje (x-1) + 1 pa je onda u drugom ponavljanju glavne petlje i=x, a ne 2.
Pa imaš petlju unutar petlje, kad je i=1, ovaj unutarnji "j" brojač ide od 1 do j<x odnosno x-1. Kad dva puta koristiš "i", onda kod prvog prolaza, kad je i=1 za prvu petlju, onda u drugoj petlji "i" postaje x-1 tj. odvrti se druga petlja do kraja, a zatim nastupa opet gornja/prva for petlja koja povećava "i" za jedan, a to je zbog unutarnje petlje (x-1) + 1 pa je onda u drugom ponavljanju glavne petlje i=x, a ne 2.
|
|
[Vrh] |
|
nuclear Forumaš(ica)


Pridružen/a: 13. 11. 2011. (17:40:12) Postovi: (74)16
Spol: 
|
Postano: 20:54 sub, 24. 11. 2012 Naslov: |
|
|
Praktični kolokvij, zad.6 Napišite program koji učitava prirodni broj n ≤ 10. Program prvo treba provjeriti je li n ≤ 10. Ako je, onda treba ispisati
najmanji prirodni broj sa svojstvom da pri dijeljenju s 2 daje ostatak 1, pri dijeljenju s 3 daje ostatak 2, pri dijeljenju s 4
daje ostatak 3, . . . , pri dijeljenju s n daje ostatak n − 1. Ako je n > 10, treba ispisati odgovarajuću poruku.
Zanemarivši što ovdje nisam ispisala poruku za n>10, gdje griješim? Program mi se beskonačno vrti i ne znam kako ubaciti break ako mi nađe taj i...
[code:1]#include <stdio.h>
int main (void){
int n, i, j, k=1;
scanf("%d", &n);
if(n<=10){
for(i=1; ; i++){
for(j=2; j<=n; j++){
if(i%j==(j-1)) ++k;}
if(k==n)
printf("%d", i); }
}
return 0;}[/code:1]
Praktični kolokvij, zad.6 Napišite program koji učitava prirodni broj n ≤ 10. Program prvo treba provjeriti je li n ≤ 10. Ako je, onda treba ispisati
najmanji prirodni broj sa svojstvom da pri dijeljenju s 2 daje ostatak 1, pri dijeljenju s 3 daje ostatak 2, pri dijeljenju s 4
daje ostatak 3, . . . , pri dijeljenju s n daje ostatak n − 1. Ako je n > 10, treba ispisati odgovarajuću poruku.
Zanemarivši što ovdje nisam ispisala poruku za n>10, gdje griješim? Program mi se beskonačno vrti i ne znam kako ubaciti break ako mi nađe taj i...
Kod: | #include <stdio.h>
int main (void){
int n, i, j, k=1;
scanf("%d", &n);
if(n<=10){
for(i=1; ; i++){
for(j=2; j<=n; j++){
if(i%j==(j-1)) ++k;}
if(k==n)
printf("%d", i); }
}
return 0;} |
|
|
[Vrh] |
|
Phoenix Forumaš(ica)


Pridružen/a: 15. 05. 2010. (18:46:07) Postovi: (164)16
Sarma: -
|
Postano: 21:33 sub, 24. 11. 2012 Naslov: |
|
|
Problem je u tome što za svaki [tt]i[/tt] trebaš koristiti brojač postavljen na početku, odnosno da na početku svakog koraka [tt]for[/tt] petlje imaš [tt]k=1[/tt]. Naime, za svaki broj [tt]i[/tt] provjeravaš hoće li svi brojevi iz skupa [tex]\left\{ 2, 3, ..., n-1 \right\}[/tex] zadovoljavati tvoje svojstvo - dakle, ima smisla staviti uvjet [tt]k=1[/tt] i provjeriti jesmo li ga povećali točno [tex]n-1[/tex] puta. No, jednom povećani [tt]k[/tt] koji nije zadovoljavao uvjet [tt]k==n[/tt] za idući broj [tt]i[/tt] nije postavljen na [tex]1[/tex], pa, ako se naš uvjet ispuni, program to neće prepoznati - dapače, nastavit će dalje i tako će upasti u beskonačnu petlju. Uz to, riskiraš da za rješenje ispiše broj koji uopće ne zadovoljava dano svojstvo (ali tada, kada bi napravila traženi prekid, bi barem izašao iz petlje :D).
(Nadam se da sam otprilike objasnio u čemu je problem.)
A što se tiče prekida u slučaju ispisa, možeš jednostavno iskoristiti naredbu [tt]break;[/tt] koja te automatski izbacuje iz jedne (najdublje) petlje u kojoj se nalaziš. Ako te muči korištenje te naredbe, možeš koristiti početni parametar i postaviti ga, recimo, kao [tt]t=0[/tt] i taj broj povećati za [tex]1[/tex] jednom kada napraviš ispis. Tada prva [tt]for[/tt] petlja, koja nema uvjet, mora imati uvjet [tt]t==0[/tt].
Nakon ove dvije izmjene program bi ti trebao raditi. :)
Problem je u tome što za svaki i trebaš koristiti brojač postavljen na početku, odnosno da na početku svakog koraka for petlje imaš k=1. Naime, za svaki broj i provjeravaš hoće li svi brojevi iz skupa [tex]\left\{ 2, 3, ..., n-1 \right\}[/tex] zadovoljavati tvoje svojstvo - dakle, ima smisla staviti uvjet k=1 i provjeriti jesmo li ga povećali točno [tex]n-1[/tex] puta. No, jednom povećani k koji nije zadovoljavao uvjet k==n za idući broj i nije postavljen na [tex]1[/tex], pa, ako se naš uvjet ispuni, program to neće prepoznati - dapače, nastavit će dalje i tako će upasti u beskonačnu petlju. Uz to, riskiraš da za rješenje ispiše broj koji uopće ne zadovoljava dano svojstvo (ali tada, kada bi napravila traženi prekid, bi barem izašao iz petlje ).
(Nadam se da sam otprilike objasnio u čemu je problem.)
A što se tiče prekida u slučaju ispisa, možeš jednostavno iskoristiti naredbu break; koja te automatski izbacuje iz jedne (najdublje) petlje u kojoj se nalaziš. Ako te muči korištenje te naredbe, možeš koristiti početni parametar i postaviti ga, recimo, kao t=0 i taj broj povećati za [tex]1[/tex] jednom kada napraviš ispis. Tada prva for petlja, koja nema uvjet, mora imati uvjet t==0.
Nakon ove dvije izmjene program bi ti trebao raditi.
|
|
[Vrh] |
|
nuclear Forumaš(ica)


Pridružen/a: 13. 11. 2011. (17:40:12) Postovi: (74)16
Spol: 
|
|
[Vrh] |
|
Phoenix Forumaš(ica)


Pridružen/a: 15. 05. 2010. (18:46:07) Postovi: (164)16
Sarma: -
|
Postano: 22:00 sub, 24. 11. 2012 Naslov: |
|
|
Nema problema. :) Vidim da nisam bio jasan maloprije jer sam riječima pokušao objasniti što da popraviš. Ali može i na tvom kodu. ;)
Evo dvije verzije prekida koje sam ti objašnjavao. Prva je najkraća i najjednostavnija, ali druga je ako ne razumiješ sasvim kako postupa naredba [tt]break;[/tt] i kako je pravilno iskoristiti, pa želiš biti sasvim sigurna s drugim načinom. :)
[quote]#include <stdio.h>
int main (void){
int n, i, j, k=1;
scanf("%d", &n);
if(n<=10){
for(i=1; ; i++){
[color=red]k=1;[/color]
for(j=2; j<=n; j++){
if(i%j==(j-1)) ++k;}
if(k==n)
[color=red]{[/color]
printf("%d", i);
[color=red]break; }[/color]
}
}
return 0;}[/quote]
[quote]#include <stdio.h>
int main (void){
int n, i, j, k=1[color=red], t=0[/color];
scanf("%d", &n);
if(n<=10){
for(i=1; [color=red]t==0[/color] ; i++){
[color=red]k=1;[/color]
for(j=2; j<=n; j++){
if(i%j==(j-1)) ++k;}
if(k==n)
[color=red]{[/color]
printf("%d", i);
[color=red]t++; }[/color]
}
}
return 0;}[/quote]
Nadam se da te neće zbuniti to što sam code blok pretvorio u quote blok - to sam napravio da mogu tekst obojati crvenom bojom, a drugačije ne znam kako se radi. Tako da ti je sada kod postao i malo ružniji jer se ne vide razmaci i proredi koje si prije pisala. :? Isprike za to!
Pripazi još samo kako si prije imala naredbu [tt]printf[/tt] i zagradu [tt]}[/tt] u jednom redu. Sada više ne mogu biti u istom redu, no primijeti da ti je to iduća zagrada koja nije obojana crvenom bojom. ;)
Nema problema. Vidim da nisam bio jasan maloprije jer sam riječima pokušao objasniti što da popraviš. Ali može i na tvom kodu.
Evo dvije verzije prekida koje sam ti objašnjavao. Prva je najkraća i najjednostavnija, ali druga je ako ne razumiješ sasvim kako postupa naredba break; i kako je pravilno iskoristiti, pa želiš biti sasvim sigurna s drugim načinom.
Citat: | #include <stdio.h>
int main (void){
int n, i, j, k=1;
scanf("%d", &n);
if(n⇐10){
for(i=1; ; i++){
k=1;
for(j=2; j⇐n; j++){
if(i%j==(j-1)) ++k;}
if(k==n)
{
printf("%d", i);
break; }
}
}
return 0;} |
Citat: | #include <stdio.h>
int main (void){
int n, i, j, k=1, t=0;
scanf("%d", &n);
if(n⇐10){
for(i=1; t==0 ; i++){
k=1;
for(j=2; j⇐n; j++){
if(i%j==(j-1)) ++k;}
if(k==n)
{
printf("%d", i);
t++; }
}
}
return 0;} |
Nadam se da te neće zbuniti to što sam code blok pretvorio u quote blok - to sam napravio da mogu tekst obojati crvenom bojom, a drugačije ne znam kako se radi. Tako da ti je sada kod postao i malo ružniji jer se ne vide razmaci i proredi koje si prije pisala. Isprike za to!
Pripazi još samo kako si prije imala naredbu printf i zagradu } u jednom redu. Sada više ne mogu biti u istom redu, no primijeti da ti je to iduća zagrada koja nije obojana crvenom bojom.
|
|
[Vrh] |
|
celeste Forumaš(ica)

Pridružen/a: 31. 10. 2009. (11:56:09) Postovi: (23)16
|
Postano: 16:59 uto, 27. 11. 2012 Naslov: zadatak 5 |
|
|
Mozhe li mi, molim vas,netko pojasniti ovaj zadatak?
Napišite program koji učitava 8 cijelih brojeva, te ispisuje svakog koji je djeljiv s prethodno upisanim (prvi se nikad ne ispisuje).
Ispisane brojeve odvojite razmacima (program ih smijete ispisivati i za vrijeme učitavanja), a ako traženih brojeva nema, program ne smije ništa ispisati.
Uputa: Program riješite pomoću petlje (iako se može i učitavanjem 8 varijabli). Pazite na dijeljenje s nulom!
Koji je drugi nachin osim uchitavanja 8 varijabli ako je prva rechenica "Napishite program koji uchitava 8 cijelih brojeva.." I na koji bi se tochno nachin mogao rijeshiti pomochu petlje bez da se koristim nizovima?
Mozhe li mi, molim vas,netko pojasniti ovaj zadatak?
Napišite program koji učitava 8 cijelih brojeva, te ispisuje svakog koji je djeljiv s prethodno upisanim (prvi se nikad ne ispisuje).
Ispisane brojeve odvojite razmacima (program ih smijete ispisivati i za vrijeme učitavanja), a ako traženih brojeva nema, program ne smije ništa ispisati.
Uputa: Program riješite pomoću petlje (iako se može i učitavanjem 8 varijabli). Pazite na dijeljenje s nulom!
Koji je drugi nachin osim uchitavanja 8 varijabli ako je prva rechenica "Napishite program koji uchitava 8 cijelih brojeva.." I na koji bi se tochno nachin mogao rijeshiti pomochu petlje bez da se koristim nizovima?
|
|
[Vrh] |
|
Gino Forumaš(ica)

Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
|
[Vrh] |
|
nuclear Forumaš(ica)


Pridružen/a: 13. 11. 2011. (17:40:12) Postovi: (74)16
Spol: 
|
|
[Vrh] |
|
Phoenix Forumaš(ica)


Pridružen/a: 15. 05. 2010. (18:46:07) Postovi: (164)16
Sarma: -
|
|
[Vrh] |
|
beuler Forumaš(ica)


Pridružen/a: 02. 11. 2012. (14:08:41) Postovi: (16)16
|
Postano: 18:41 ned, 9. 12. 2012 Naslov: |
|
|
trebam neku ideju za ovaj zadatak ako nije problem:
Napišite program koji učitava prirodni broj n<31, te niz od n cijelih brojeva. Program treba učitane brojeve ispisati padajuće sortirano prema sumi znamenaka u bazi 5; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 5, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima.
ovo je moja ideja, ali mi se cini prekomplicirano,
zar stvarno moram 4 niza koristiti za ovaj zadatak ?
ideja:
[spoiler]Ucitao sam niz koji sadrzi n brojeva, napravio jos jedan niz koji ima vrijednosti zbroja znamenaka u bazi 5 svakog broja 1. niza sa istim indeksima kao u prvom.
Sad deklariram jos dva niza, jedan koji ce mi spremati ove sume od drugog niza po velicini, a jedan koji ce za svaki spremljeni zapamtit na kojem je mjestu ta suma bila u nizu 2(odnosno 1. jer su isti). Sad bi trebalo napraviti nesto sto ce puniti clanove treceg i cetvrtog niza tako da je svaki iduci u 3. manji od prethodnog (a s time i od ostalih) i ako je jednak prethodnom mora mu indeks biti razliciti od prethodnog clana 4. niza, ako mu je razlicit provjeriti ako je clan prvog niza sa tim indeksom manji od ekvivalentnog u prvom nizu clana sa kojim je jednak..[/spoiler]
trebam neku ideju za ovaj zadatak ako nije problem:
Napišite program koji učitava prirodni broj n<31, te niz od n cijelih brojeva. Program treba učitane brojeve ispisati padajuće sortirano prema sumi znamenaka u bazi 5; ako neka dva različita broja imaju jednaku sumu znamenaka u bazi 5, onda ih uspoređujete na uobičajeni način. Ispisane brojeve odvojite razmacima.
ovo je moja ideja, ali mi se cini prekomplicirano,
zar stvarno moram 4 niza koristiti za ovaj zadatak ?
ideja:
Spoiler [hidden; click to show]: | Ucitao sam niz koji sadrzi n brojeva, napravio jos jedan niz koji ima vrijednosti zbroja znamenaka u bazi 5 svakog broja 1. niza sa istim indeksima kao u prvom.
Sad deklariram jos dva niza, jedan koji ce mi spremati ove sume od drugog niza po velicini, a jedan koji ce za svaki spremljeni zapamtit na kojem je mjestu ta suma bila u nizu 2(odnosno 1. jer su isti). Sad bi trebalo napraviti nesto sto ce puniti clanove treceg i cetvrtog niza tako da je svaki iduci u 3. manji od prethodnog (a s time i od ostalih) i ako je jednak prethodnom mora mu indeks biti razliciti od prethodnog clana 4. niza, ako mu je razlicit provjeriti ako je clan prvog niza sa tim indeksom manji od ekvivalentnog u prvom nizu clana sa kojim je jednak.. |
_________________ Sumnjam, dakle možda jesam.
|
|
[Vrh] |
|
vsego Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3561)16
Spol: 
Lokacija: /sbin/init
|
Postano: 18:55 ned, 9. 12. 2012 Naslov: |
|
|
Dosta je jedan niz, onaj u kojem su sami brojevi. Radis obicni sort, a mijenja se -- kao i uvijek kod sortiranja -- uvjet zamjene varijabli:
[code:1]int si = sumazn(x[i], 5), sj = sumazn(x[j], 5);
if (si < sj || (si == sj && x[i] < x[j])) /* radi zamjenu */[/code:1]
Naravno, fukcija [tt]sumazn(a, b)[/tt] vraca sumu znamenaka broja [tt]a[/tt] kad je zapisan u sustavu s bazom [tt]b[/tt].
Vjerojatno varijablama [tt]si[/tt] i [tt]sj[/tt] neces zajedno zadati vrijednost, kao ja u skici, nego ces [tt]si[/tt] racunati u vanjskoj petlji, a samo [tt]sj[/tt] neposredno prije [tt]if[/tt]-a. Keep in mind, ovo je samo skica koja pokazuje ideju.
Kolicinu racunanja (cit. poziva funkcije [tt]sumazn()[/tt]) mozes smanjiti pomocnim nizom u kojem ces cuvati sume znamenaka (u bazi 5), ali tada moras paziti da istovremeno zamjenjujes elemente i tog i originalnog niza (a ne samo jednog od njih).
Dosta je jedan niz, onaj u kojem su sami brojevi. Radis obicni sort, a mijenja se – kao i uvijek kod sortiranja – uvjet zamjene varijabli:
Kod: | int si = sumazn(x[i], 5), sj = sumazn(x[j], 5);
if (si < sj || (si == sj && x[i] < x[j])) /* radi zamjenu */ |
Naravno, fukcija sumazn(a, b) vraca sumu znamenaka broja a kad je zapisan u sustavu s bazom b.
Vjerojatno varijablama si i sj neces zajedno zadati vrijednost, kao ja u skici, nego ces si racunati u vanjskoj petlji, a samo sj neposredno prije if-a. Keep in mind, ovo je samo skica koja pokazuje ideju.
Kolicinu racunanja (cit. poziva funkcije sumazn()) mozes smanjiti pomocnim nizom u kojem ces cuvati sume znamenaka (u bazi 5), ali tada moras paziti da istovremeno zamjenjujes elemente i tog i originalnog niza (a ne samo jednog od njih).
_________________ 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] |
|
beuler Forumaš(ica)


Pridružen/a: 02. 11. 2012. (14:08:41) Postovi: (16)16
|
Postano: 19:33 ned, 9. 12. 2012 Naslov: |
|
|
[quote="vsego"]Dosta je jedan niz, onaj u kojem su sami brojevi. Radis obicni sort, a mijenja se -- kao i uvijek kod sortiranja -- uvjet zamjene varijabli:
[code:1]int si = sumazn(x[i], 5), sj = sumazn(x[j], 5);
if (si < sj || (si == sj && x[i] < x[j])) /* radi zamjenu */[/code:1]
[/quote]
Ok, to mi je jasno, ali kako da resetiram taj clan tako da je bilo koji iduci veci od tog resetiranog? Da su prirodni brojevi mogao bih ga postaviti kao nulu, ali radi se o cijelim br. I kako postici da se brojevi koje sam vec postavio kao najvece ne ponavljaju kod iduce vrtnje ?
Ja vidim rjesenje jedino kao dodavanje nekog niza koji ce spremati indekse koje sam vec iskoristio, pa onda kod svake vrtnje provjeravat podudara li se indeks sa clanom niza, ako da preskociti ga..
vsego (napisa): | Dosta je jedan niz, onaj u kojem su sami brojevi. Radis obicni sort, a mijenja se – kao i uvijek kod sortiranja – uvjet zamjene varijabli:
Kod: | int si = sumazn(x[i], 5), sj = sumazn(x[j], 5);
if (si < sj || (si == sj && x[i] < x[j])) /* radi zamjenu */ |
|
Ok, to mi je jasno, ali kako da resetiram taj clan tako da je bilo koji iduci veci od tog resetiranog? Da su prirodni brojevi mogao bih ga postaviti kao nulu, ali radi se o cijelim br. I kako postici da se brojevi koje sam vec postavio kao najvece ne ponavljaju kod iduce vrtnje ?
Ja vidim rjesenje jedino kao dodavanje nekog niza koji ce spremati indekse koje sam vec iskoristio, pa onda kod svake vrtnje provjeravat podudara li se indeks sa clanom niza, ako da preskociti ga..
_________________ Sumnjam, dakle možda jesam.
|
|
[Vrh] |
|
vsego Site Admin


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


Pridružen/a: 02. 11. 2012. (14:08:41) Postovi: (16)16
|
Postano: 19:43 ned, 9. 12. 2012 Naslov: |
|
|
Aha, sad razumijem, mislili ste sortirati niz pa ga ispisati,
ja sam stalno vrtio u glavi najveci - ispisi ga idi dalje.
Ok, jasno mi je sad, hvala!
Aha, sad razumijem, mislili ste sortirati niz pa ga ispisati,
ja sam stalno vrtio u glavi najveci - ispisi ga idi dalje.
Ok, jasno mi je sad, hvala!
_________________ Sumnjam, dakle možda jesam.
|
|
[Vrh] |
|
Redeemer Forumaš(ica)


Pridružen/a: 12. 06. 2006. (21:57:04) Postovi: (B9)16
Spol: 
Lokacija: Wo'liegt'dieses'verdammte'dorf
|
Postano: 15:48 sri, 2. 1. 2013 Naslov: |
|
|
moze malo pomoci oko rada s dinamicki alociranim matricama...
zakrzljao sam malo, pa da osvjezim znanje
[code:1]printf ("koliko redaka?");
scanf ("%d",&M);
printf ("koliko stupaca?");
scanf ("%d",&N);
/* dinamicka alokacija memorije*/
int **array;
array = (int**)malloc((M*sizeof(int*));
for (i = 0; i <M; i++)
array[i] = (int*)malloc(N*sizeof(int));
/* unos*/
for ( i = 0; i < M ; i++) {
for ( j = 0; j < N ; j++) {
printf (”x[%d][%d ] = ” , i , j ) ;
scanf (”%d ” , &array [ i ] [ j ] ) ;
}
}
[/code:1]
kako napraviti unos po recima? gdje su znamenke odvojene razmakom i onda nakon tipke enter ide unos po drugom redu etc...
btw, jel dobra alokacija memorije?
i jos jedno pitanje za kraj
sto ce vratiti array[1]=array[2]
zanima me zapravo, kako zamijeniti dva retka..
moze malo pomoci oko rada s dinamicki alociranim matricama...
zakrzljao sam malo, pa da osvjezim znanje
Kod: | printf ("koliko redaka?");
scanf ("%d",&M);
printf ("koliko stupaca?");
scanf ("%d",&N);
/* dinamicka alokacija memorije*/
int **array;
array = (int**)malloc((M*sizeof(int*));
for (i = 0; i <M; i++)
array[i] = (int*)malloc(N*sizeof(int));
/* unos*/
for ( i = 0; i < M ; i++) {
for ( j = 0; j < N ; j++) {
printf (”x[%d][%d ] = ” , i , j ) ;
scanf (”%d ” , &array [ i ] [ j ] ) ;
}
}
|
kako napraviti unos po recima? gdje su znamenke odvojene razmakom i onda nakon tipke enter ide unos po drugom redu etc...
btw, jel dobra alokacija memorije?
i jos jedno pitanje za kraj
sto ce vratiti array[1]=array[2]
zanima me zapravo, kako zamijeniti dva retka..
_________________ Nigdje ne piše da morate studirati ovdje.
|
|
[Vrh] |
|
mdoko Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol: 
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
Redeemer Forumaš(ica)


Pridružen/a: 12. 06. 2006. (21:57:04) Postovi: (B9)16
Spol: 
Lokacija: Wo'liegt'dieses'verdammte'dorf
|
|
[Vrh] |
|
|