Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
|
[Vrh] |
|
Swerz Forumaš(ica)
Pridružen/a: 13. 02. 2009. (21:30:28) Postovi: (182)16
Spol:
|
|
[Vrh] |
|
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
Postano: 19:16 pet, 24. 9. 2010 Naslov: |
|
|
[code:1]#include <stdio.h>
#include <stdlib.h>
int main(void) {
int i;
double x, max, min,a;
scanf("%lf", &x);
if (x>0)
a=x;
if (x<0)
a=-x;
max=a;
min=a;
for (i=0;i<5;i++){
scanf("%lf", &x);
if (x>0)
a=x;
if (x<0)
a=-x;
if (a && a > max)
max = a;
if (a && a < min)
min = a;
}
printf("maksimum je %g\n", max);
printf("minimum je %g\n", min);
system("pause");
return 0;
}[/code:1]
Evo ovo je moj kod. Tu odredim min i max od apsolutne vrijednosti. No kako sada da vratim broj od kojeg sam uzimao apsolutnu vrijednost i jos da ubacim jednakost dva broja?
Kod: | #include <stdio.h>
#include <stdlib.h>
int main(void) {
int i;
double x, max, min,a;
scanf("%lf", &x);
if (x>0)
a=x;
if (x<0)
a=-x;
max=a;
min=a;
for (i=0;i<5;i++){
scanf("%lf", &x);
if (x>0)
a=x;
if (x<0)
a=-x;
if (a && a > max)
max = a;
if (a && a < min)
min = a;
}
printf("maksimum je %g\n", max);
printf("minimum je %g\n", min);
system("pause");
return 0;
} |
Evo ovo je moj kod. Tu odredim min i max od apsolutne vrijednosti. No kako sada da vratim broj od kojeg sam uzimao apsolutnu vrijednost i jos da ubacim jednakost dva broja?
|
|
[Vrh] |
|
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
|
[Vrh] |
|
Swerz Forumaš(ica)
Pridružen/a: 13. 02. 2009. (21:30:28) Postovi: (182)16
Spol:
|
|
[Vrh] |
|
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
|
[Vrh] |
|
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
|
[Vrh] |
|
ante003 Forumaš(ica)
Pridružen/a: 13. 10. 2008. (17:45:10) Postovi: (3C5)16
Spol:
|
|
[Vrh] |
|
Cobs Forumaš(ica)
Pridružen/a: 21. 01. 2008. (13:32:15) Postovi: (206)16
Spol:
Lokacija: Geto
|
|
[Vrh] |
|
Swerz Forumaš(ica)
Pridružen/a: 13. 02. 2009. (21:30:28) Postovi: (182)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 7:31 sub, 25. 9. 2010 Naslov: |
|
|
Kakvi nizovi, ljudi?!? :shock: Uzima li se prvi ili zadnji od svih koji su jednaki po kriteriju usporedbe, razlika je samo u usporedbi (hoće li pisati [tt]<[/tt] ili [tt]<=[/tt], odnosno [tt]>[/tt] ili [tt]>=[/tt]).
Cemu sluzi [tt]a[/tt] (prvi dio uvjeta) u
[code:1]if (a && a < min)[/code:1]
Gdje u zadatku pise da se nule ignoriraju?
Nemojte se bojati koristiti pomocne varijable. Sto fali tome da imate
[tt]x[/tt] - ucitani broj,
[tt]ax[/tt] - apsolutna vrijednost od [tt]x[/tt],
[tt]min[/tt], [tt]max[/tt] - broj s najmanjom/najvecom aps. vrijednoscu (dakle, neki od [tt]x[/tt]-eva),
[tt]amin[/tt], [tt]amax[/tt] - apsolutna vrijednost od [tt]min[/tt], odnosno [tt]max[/tt] (dakle, neki od [tt]a[/tt]-ova)?
Kakvi nizovi, ljudi?!? Uzima li se prvi ili zadnji od svih koji su jednaki po kriteriju usporedbe, razlika je samo u usporedbi (hoće li pisati < ili ⇐, odnosno > ili >=).
Cemu sluzi a (prvi dio uvjeta) u
Gdje u zadatku pise da se nule ignoriraju?
Nemojte se bojati koristiti pomocne varijable. Sto fali tome da imate
x - ucitani broj,
ax - apsolutna vrijednost od x,
min, max - broj s najmanjom/najvecom aps. vrijednoscu (dakle, neki od x-eva),
amin, amax - apsolutna vrijednost od min, odnosno max (dakle, neki od a-ova)?
_________________ 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] |
|
Buki Forumaš(ica)
Pridružen/a: 17. 10. 2010. (20:15:17) Postovi: (56)16
|
Postano: 13:44 pet, 22. 10. 2010 Naslov: |
|
|
Pokušao sam riješiti taj zadatak isključivo preko if naredbe, ali ne radi, izbacuje mi kvadrat zadnjeg broja.. može pomoć?
[code:1]
#include <stdio.h>
int main (void){
double a, b, c, d, e;
double a1, b1, c1, d1, e1;
double max, min;
scanf ("%lf %lf %lf %lf %lf", &a, &b, &c, &d, &e);
if (a<0) a1=-a;
else a1=a;
if (b<0) b1=-b;
else b1=b;
if (c<0) c1=-c;
else c1=c;
if (d<0) d1=-d;
else d1=d;
if (e<0) e1=-e;
else e1=e;
min=max=a1;
if (b1>max) max=b1;
if (c1>max) max=c1;
if (d1>max) max=d1;
if (e1>max) max=e1;
if (b1<min) min=b1;
if (c1<min) min=c1;
if (d1<min) min=d1;
if (e1<min) min=e1;
if (min=a1) min=a;
if (min=b1) min=b;
if (min=c1) min=c;
if (min=d1) min=d;
if (min=e1) min=e;
if (max=a1) max=a;
if (max=b1) max=b;
if (max=c1) max=c;
if (max=d1) max=d;
if (max=e1) max=e;
printf ("%g\n", max*min);
system ("pause");
return 0;
}
[/code:1]
Pokušao sam riješiti taj zadatak isključivo preko if naredbe, ali ne radi, izbacuje mi kvadrat zadnjeg broja.. može pomoć?
Kod: |
#include <stdio.h>
int main (void){
double a, b, c, d, e;
double a1, b1, c1, d1, e1;
double max, min;
scanf ("%lf %lf %lf %lf %lf", &a, &b, &c, &d, &e);
if (a<0) a1=-a;
else a1=a;
if (b<0) b1=-b;
else b1=b;
if (c<0) c1=-c;
else c1=c;
if (d<0) d1=-d;
else d1=d;
if (e<0) e1=-e;
else e1=e;
min=max=a1;
if (b1>max) max=b1;
if (c1>max) max=c1;
if (d1>max) max=d1;
if (e1>max) max=e1;
if (b1<min) min=b1;
if (c1<min) min=c1;
if (d1<min) min=d1;
if (e1<min) min=e1;
if (min=a1) min=a;
if (min=b1) min=b;
if (min=c1) min=c;
if (min=d1) min=d;
if (min=e1) min=e;
if (max=a1) max=a;
if (max=b1) max=b;
if (max=c1) max=c;
if (max=d1) max=d;
if (max=e1) max=e;
printf ("%g\n", max*min);
system ("pause");
return 0;
}
|
|
|
[Vrh] |
|
ante003 Forumaš(ica)
Pridružen/a: 13. 10. 2008. (17:45:10) Postovi: (3C5)16
Spol:
|
|
[Vrh] |
|
Buki Forumaš(ica)
Pridružen/a: 17. 10. 2010. (20:15:17) Postovi: (56)16
|
|
[Vrh] |
|
Joker Forumaš(ica)
Pridružen/a: 19. 09. 2010. (10:19:16) Postovi: (8C)16
Spol:
|
|
[Vrh] |
|
Phoenix Forumaš(ica)
Pridružen/a: 15. 05. 2010. (18:46:07) Postovi: (164)16
Sarma: -
|
|
[Vrh] |
|
Joker Forumaš(ica)
Pridružen/a: 19. 09. 2010. (10:19:16) Postovi: (8C)16
Spol:
|
|
[Vrh] |
|
Phoenix Forumaš(ica)
Pridružen/a: 15. 05. 2010. (18:46:07) Postovi: (164)16
Sarma: -
|
Postano: 21:32 ned, 7. 11. 2010 Naslov: |
|
|
Moram biti iskren i priznati da ne znam o čemu se radi u zadatku. :oops:
No, pretpostavljam da bi bilo pogrešno to maknuti iz koda jer uvjet "x && x>max" i uvjet "x>max" su različiti (neće uvijek biti jednake istinitosti).
No, kada malo bolje promotrim tvoj kod i sjetim se tekstova ponekih zadataka koje sam vidio, pretpostavljam da se u zadatku (ili samo u toj petlji) traži da se učitavaju cijeli brojevi sve dok se ne unese nula, i onda program mora pronaći najveći učitani broj bez nule te redni broj tog broja... Zar ne? U tom slučaju je potrebno staviti "x && x>max" zato jer se može dogoditi da je nula uistinu najveći učitani broj, a to ne smije biti i traženi maksimum (program staje kada se učita nula).
Primjerice, program učita brojeve "-2 -8 -4 -11 0". Program treba odrediti da je maksimum broj -2, a bez uvjeta "x" (x različit od nule), ti ćeš dobiti da je maksimum 0. I imaš krivo rješenje.
Možeš li reći odakle je taj kod ili barem staviti tekst zadatka?
Moram biti iskren i priznati da ne znam o čemu se radi u zadatku.
No, pretpostavljam da bi bilo pogrešno to maknuti iz koda jer uvjet "x && x>max" i uvjet "x>max" su različiti (neće uvijek biti jednake istinitosti).
No, kada malo bolje promotrim tvoj kod i sjetim se tekstova ponekih zadataka koje sam vidio, pretpostavljam da se u zadatku (ili samo u toj petlji) traži da se učitavaju cijeli brojevi sve dok se ne unese nula, i onda program mora pronaći najveći učitani broj bez nule te redni broj tog broja... Zar ne? U tom slučaju je potrebno staviti "x && x>max" zato jer se može dogoditi da je nula uistinu najveći učitani broj, a to ne smije biti i traženi maksimum (program staje kada se učita nula).
Primjerice, program učita brojeve "-2 -8 -4 -11 0". Program treba odrediti da je maksimum broj -2, a bez uvjeta "x" (x različit od nule), ti ćeš dobiti da je maksimum 0. I imaš krivo rješenje.
Možeš li reći odakle je taj kod ili barem staviti tekst zadatka?
|
|
[Vrh] |
|
Joker Forumaš(ica)
Pridružen/a: 19. 09. 2010. (10:19:16) Postovi: (8C)16
Spol:
|
Postano: 21:49 ned, 7. 11. 2010 Naslov: |
|
|
oprosti,uopce sam zaboravila da ni ne mozes znat o cemu se radi,XDD,samo sam napisala dio koda koji mi nije bio skroz jasan..=)
evo ovo je zadatak,inace iz skripte za programiranje 1:
[i]Napišite dio programa koji učitava cijele brojeve dok korisnik ne upiše nulu.Program treba ispisati vrijednost najvećeg učitanog broja,te koji je on (po redu) učitan.[/i]
hvala sto mi pomazes =)
oprosti,uopce sam zaboravila da ni ne mozes znat o cemu se radi,XDD,samo sam napisala dio koda koji mi nije bio skroz jasan..=)
evo ovo je zadatak,inace iz skripte za programiranje 1:
Napišite dio programa koji učitava cijele brojeve dok korisnik ne upiše nulu.Program treba ispisati vrijednost najvećeg učitanog broja,te koji je on (po redu) učitan.
hvala sto mi pomazes =)
|
|
[Vrh] |
|
Phoenix Forumaš(ica)
Pridružen/a: 15. 05. 2010. (18:46:07) Postovi: (164)16
Sarma: -
|
Postano: 22:09 ned, 7. 11. 2010 Naslov: |
|
|
Da, to je to onda. Taj uvjet mora stajati jer se u zadatku traži najveći učitani broj koji nije nula te njegov redni broj.
Problem je u tome što u zadatku baš i ne piše da se nula isključuje pri traženju najvećeg broja. Ipak, program traži, citiram, [i]"vrijednost najvećeg učitanog broja"[/i], a koliko shvaćam, nula je također jedan od učitanih brojeva (makar imao ulogu da se njime prekida unos brojeva).
Da je u kojem slučaju nula bila dozvoljena, onda bi bilo dovoljno napisati "x>max". :)
I još jedna stvar koju moram primjetiti u tvom kodu...
[quote="Joker"]while(x!=0)
{printf("Ucitajte broj: ");
scanf("%d", &x);
i++;
[i] if(x && x>max) max=x;
im=i;[/i]
}
[/quote]
Mislim da bi trebalo napraviti sljedeću korekciju:
[quote="Joker"]while(x!=0)
{printf("Ucitajte broj: ");
scanf("%d", &x);
i++;
[i] if(x && x>max)
[b][color=red]{[/color][/b]
max=x;
im=i;
[b][color=red]}[/color][/b][/i]
}
[/quote]
S obzirom na to da tražiš redni broj najvećeg učitanog broja, trebalo bi staviti dodatne vitičaste zagrade tako da je i naredba "im=i;" dio if-a. Naime, ako nemaš te zagrade uz if, tada if-u pripada samo jedna naredba, i to ona prva naredba koja slijedi, a to je "max=x;". Stoga bi se naredba "im=i;" izvršavala pri svakom koraku while petlje, a to znači da varijabla "im" neće imati pohranjen redni broj traženog broja, već posljednju vrijednost broja "i", odnosno bit će jednaka broju učitanih brojeva.
P. S. Ja se ispričavam što sam ti se obraćao u muškom rodu. :oops:
Da, to je to onda. Taj uvjet mora stajati jer se u zadatku traži najveći učitani broj koji nije nula te njegov redni broj.
Problem je u tome što u zadatku baš i ne piše da se nula isključuje pri traženju najvećeg broja. Ipak, program traži, citiram, "vrijednost najvećeg učitanog broja", a koliko shvaćam, nula je također jedan od učitanih brojeva (makar imao ulogu da se njime prekida unos brojeva).
Da je u kojem slučaju nula bila dozvoljena, onda bi bilo dovoljno napisati "x>max".
I još jedna stvar koju moram primjetiti u tvom kodu...
Joker (napisa): | while(x!=0)
{printf("Ucitajte broj: ");
scanf("%d", &x);
i++;
if(x && x>max) max=x;
im=i;
}
|
Mislim da bi trebalo napraviti sljedeću korekciju:
Joker (napisa): | while(x!=0)
{printf("Ucitajte broj: ");
scanf("%d", &x);
i++;
if(x && x>max)
{
max=x;
im=i;
}
}
|
S obzirom na to da tražiš redni broj najvećeg učitanog broja, trebalo bi staviti dodatne vitičaste zagrade tako da je i naredba "im=i;" dio if-a. Naime, ako nemaš te zagrade uz if, tada if-u pripada samo jedna naredba, i to ona prva naredba koja slijedi, a to je "max=x;". Stoga bi se naredba "im=i;" izvršavala pri svakom koraku while petlje, a to znači da varijabla "im" neće imati pohranjen redni broj traženog broja, već posljednju vrijednost broja "i", odnosno bit će jednaka broju učitanih brojeva.
P. S. Ja se ispričavam što sam ti se obraćao u muškom rodu.
|
|
[Vrh] |
|
|