Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
satja Forumaš(ica)
Pridružen/a: 16. 05. 2010. (10:44:17) Postovi: (F1)16
|
|
[Vrh] |
|
Buki Forumaš(ica)
Pridružen/a: 17. 10. 2010. (20:15:17) Postovi: (56)16
|
|
[Vrh] |
|
satja Forumaš(ica)
Pridružen/a: 16. 05. 2010. (10:44:17) Postovi: (F1)16
|
|
[Vrh] |
|
pmli Forumaš(ica)
Pridružen/a: 09. 11. 2009. (12:03:05) Postovi: (2C8)16
Spol:
|
Postano: 14:20 pon, 15. 11. 2010 Naslov: |
|
|
[quote="vuja"]if (x>=y, x>=z)[/quote]
Ovo će kompiler "progutati", ali neće "ispljunuti" ono što želiš. :)
Ono što želiš je if (x >= y && x >= z).
Operator ',' funkcionira tako da se izvrši sve što je nabrojano, i vrati vrijednost zadnjeg izraza. U biti, da si napisao if (x >= z), dobio bi istu stvar.
Postoji i "bolji" algoritam za nalaženje minimuma, koji se onda može poopćiti za veći broj učitanih elemenata. Evo ga
[code:1]m = x;
if (m > y)
m = y;
if (m > z)
m = z;[/code:1]
Ako ne vjeruješ, uzmi neke konkretne brojeve. :D
vuja (napisa): | if (x>=y, x>=z) |
Ovo će kompiler "progutati", ali neće "ispljunuti" ono što želiš.
Ono što želiš je if (x >= y && x >= z).
Operator ',' funkcionira tako da se izvrši sve što je nabrojano, i vrati vrijednost zadnjeg izraza. U biti, da si napisao if (x >= z), dobio bi istu stvar.
Postoji i "bolji" algoritam za nalaženje minimuma, koji se onda može poopćiti za veći broj učitanih elemenata. Evo ga
Kod: | m = x;
if (m > y)
m = y;
if (m > z)
m = z; |
Ako ne vjeruješ, uzmi neke konkretne brojeve.
|
|
[Vrh] |
|
vuja Forumaš(ica)
Pridružen/a: 26. 09. 2009. (12:57:07) Postovi: (2C)16
Spol:
|
|
[Vrh] |
|
amalia Forumaš(ica)
Pridružen/a: 14. 11. 2010. (17:49:43) Postovi: (7)16
|
Postano: 19:07 pon, 15. 11. 2010 Naslov: |
|
|
Pozdrav :D
Molim pomoć oko zadatka br.4:
Napišite program koji učitava 9 realnih brojeva, te ih ispisuje umnožak ona dva koji imaju najveću, odnosno najmanju apsolutnu vrijednost. Ako dva broja imaju jednaku apsolutnu vrijednost, za većeg/manjeg uzimate onog koji je prije učitan.
Rezultat obavezno ispišite koristeći format %g!
Moje rješenje:
#include <stdio.h>
int main(void)
{
double x, y , z, t,l,min, max, min2, max2;
int i, n=7;
scanf("%lg %lg", &x, &y);
if(x<0) x=-x;
if(y<0) y=-y;
if(x>=y){min=y; max=x; min2=x; max2=y;}
else { min=x; max=y; min2=y; max2=x;}
for(i=0 ; i<n ; i++)
{
scanf("%lg", &z);
if(z<0) z=-z;
if(z<min ) {t=min ; min=z; min2=t;}
if(z>max ) {l=max ; max=z; max2=l;}
}
printf("%g %g ", min*min2, max*max2);
return 0;
}
Gdje je greška?
Ps: Ne pričam 100% hr možda nisam shvatila zadatak :(
Pozdrav
Molim pomoć oko zadatka br.4:
Napišite program koji učitava 9 realnih brojeva, te ih ispisuje umnožak ona dva koji imaju najveću, odnosno najmanju apsolutnu vrijednost. Ako dva broja imaju jednaku apsolutnu vrijednost, za većeg/manjeg uzimate onog koji je prije učitan.
Rezultat obavezno ispišite koristeći format %g!
Moje rješenje:
#include <stdio.h>
int main(void)
{
double x, y , z, t,l,min, max, min2, max2;
int i, n=7;
scanf("%lg %lg", &x, &y);
if(x<0) x=-x;
if(y<0) y=-y;
if(x>=y){min=y; max=x; min2=x; max2=y;}
else { min=x; max=y; min2=y; max2=x;}
for(i=0 ; i<n ; i++)
{
scanf("%lg", &z);
if(z<0) z=-z;
if(z<min ) {t=min ; min=z; min2=t;}
if(z>max ) {l=max ; max=z; max2=l;}
}
printf("%g %g ", min*min2, max*max2);
return 0;
}
Gdje je greška?
Ps: Ne pričam 100% hr možda nisam shvatila zadatak
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 19:10 pon, 15. 11. 2010 Naslov: |
|
|
Umnozak (jedan, a ne dva) ona dva broja (dva, a ne cetiri). Dakle, jedan min, jedan max i to se onda pomnozi.
Rjesenje nisam gledao iz razloga obrazlozenog u mom sigu.
Umnozak (jedan, a ne dva) ona dva broja (dva, a ne cetiri). Dakle, jedan min, jedan max i to se onda pomnozi.
Rjesenje nisam gledao iz razloga obrazlozenog u mom sigu.
_________________ 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] |
|
amalia Forumaš(ica)
Pridružen/a: 14. 11. 2010. (17:49:43) Postovi: (7)16
|
|
[Vrh] |
|
Pero.Edin Forumaš(ica)
Pridružen/a: 14. 12. 2010. (16:48:11) Postovi: (C)16
|
Postano: 16:58 uto, 14. 12. 2010 Naslov: |
|
|
ako ima koja dobra duša koja bi mi mogla rj ovaj zadatak..
[quote]Napišite program koji učitava prirodni broj n, te "crta" vodoravnu liniju sastavljenu od n znakova plus ("+") i minus ("-"), s time da svaki 4. znak treba biti plus, a svi ostali minus (dakle, prvih 3 su minusi, zatim jedan plus, pa opet 3 minusa i tako dalje).[/quote]
i moja stota po redu verzija koju šaljem ,a aplikacija za zadaće mi je ne prihvaća:
[quote]#include<stdio.h>
int main(){
int n,i;
scanf("%d",&n);
printf("---");
do{
printf("+");
for(i=0;i<3;i++)
printf("-");
n--;
}while(n>0);
return 0;
}[/quote]
ako ima koja dobra duša koja bi mi mogla rj ovaj zadatak..
Citat: | Napišite program koji učitava prirodni broj n, te "crta" vodoravnu liniju sastavljenu od n znakova plus ("+") i minus ("-"), s time da svaki 4. znak treba biti plus, a svi ostali minus (dakle, prvih 3 su minusi, zatim jedan plus, pa opet 3 minusa i tako dalje). |
i moja stota po redu verzija koju šaljem ,a aplikacija za zadaće mi je ne prihvaća:
Citat: | #include<stdio.h>
int main(){
int n,i;
scanf("%d",&n);
printf("—");
do{
printf("+");
for(i=0;i<3;i++)
printf("-");
n–;
}while(n>0);
return 0;
} |
|
|
[Vrh] |
|
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
|
[Vrh] |
|
Pero.Edin Forumaš(ica)
Pridružen/a: 14. 12. 2010. (16:48:11) Postovi: (C)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
gogo_ Forumaš(ica)
Pridružen/a: 07. 10. 2009. (17:06:47) Postovi: (3F)16
|
|
[Vrh] |
|
Pero.Edin Forumaš(ica)
Pridružen/a: 14. 12. 2010. (16:48:11) Postovi: (C)16
|
|
[Vrh] |
|
piccola Forumaš(ica)
Pridružen/a: 30. 11. 2009. (15:39:50) Postovi: (D7)16
|
|
[Vrh] |
|
Buki Forumaš(ica)
Pridružen/a: 17. 10. 2010. (20:15:17) Postovi: (56)16
|
|
[Vrh] |
|
Sekanta Forumaš(ica)
Pridružen/a: 13. 09. 2009. (10:14:33) Postovi: (48)16
|
|
[Vrh] |
|
Alia3 Forumaš(ica)
Pridružen/a: 14. 01. 2011. (23:07:02) Postovi: (22)16
Spol:
|
Postano: 23:33 pet, 14. 1. 2011 Naslov: |
|
|
hmm isto me muči zadatak sa apsolutnom..ja sam ga ovako rješila ali mi ga je odbio kao netočni,jel to možda zbog funkcije ili??? mislim da može se provjera raditi i unutar tijela..lako se narikta..ali opet ovako kako sam ja zamislila treba bi apsolutna..
[code:1]
#include <stdio.h>
double abs (double n) {
if (n<0) n=-n;
return n;
}
double max (double a,double b,double c,double d,double e,double f) {
double p;
p=a;
if (abs (b)>abs (p)) p=b;
if (abs (c)>abs (p)) p=c;
if (abs (d)>abs (p)) p=d;
if (abs (e)>abs (p)) p=e;
if (abs (f)>abs (p)) p=f;
return p; }
double min (double a,double b,double c,double d,double e,double f) {
double p;
p=a;
if (abs (b)<abs (p)) p=b;
if (abs (c)<abs (p)) p=c;
if (abs (d)<abs (p)) p=d;
if (abs (e)<abs (p)) p=e;
if (abs (f)<abs (p)) p=f;
return p; }
int main (void) {
double a,b,c,d,e,f,x,y,z;
scanf ("%lf %lf %lf %lf %lf %lf", &a, &b, &c, &d, &e, &f);
x = max (a,b,c,d,e,f);
y = min (a,b,c,d,e,f);
z=x*y;
printf ("%g * %g = %g", x,y,z);
return 0; }
[/code:1]
hmm isto me muči zadatak sa apsolutnom..ja sam ga ovako rješila ali mi ga je odbio kao netočni,jel to možda zbog funkcije ili??? mislim da može se provjera raditi i unutar tijela..lako se narikta..ali opet ovako kako sam ja zamislila treba bi apsolutna..
Kod: |
#include <stdio.h>
double abs (double n) {
if (n<0) n=-n;
return n;
}
double max (double a,double b,double c,double d,double e,double f) {
double p;
p=a;
if (abs (b)>abs (p)) p=b;
if (abs (c)>abs (p)) p=c;
if (abs (d)>abs (p)) p=d;
if (abs (e)>abs (p)) p=e;
if (abs (f)>abs (p)) p=f;
return p; }
double min (double a,double b,double c,double d,double e,double f) {
double p;
p=a;
if (abs (b)<abs (p)) p=b;
if (abs (c)<abs (p)) p=c;
if (abs (d)<abs (p)) p=d;
if (abs (e)<abs (p)) p=e;
if (abs (f)<abs (p)) p=f;
return p; }
int main (void) {
double a,b,c,d,e,f,x,y,z;
scanf ("%lf %lf %lf %lf %lf %lf", &a, &b, &c, &d, &e, &f);
x = max (a,b,c,d,e,f);
y = min (a,b,c,d,e,f);
z=x*y;
printf ("%g * %g = %g", x,y,z);
return 0; }
|
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
Alia3 Forumaš(ica)
Pridružen/a: 14. 01. 2011. (23:07:02) Postovi: (22)16
Spol:
|
|
[Vrh] |
|
|