Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
malalodacha Forumaš(ica)
Pridružen/a: 11. 10. 2011. (17:06:13) Postovi: (79)16
|
Postano: 1:41 pet, 21. 10. 2011 Naslov: nejasnoća vezana za code blocks |
|
|
#include<stdio.h>
int main(void)
{
float x,y,z,f;
scanf("%g%g%g",&x,&y,&z);
f=abs(z);
printf("%g", f);
return 0;
}
zadatak je inače teži, al ne mogu ga riješit jer mi kad pokrenem taj teži zadatak program izbaci isto kao i za ovaj: 0 -.- ...moje je pitanje: zašto meni code blocks kada ja pokrenem program i upišem varijable npr 1,2,3 program ispiše 0, umjesto 3???greška je vjerojatno glupost neka, al ja se već sat vremena mučim s tim, i ne mogu naći razlog zašto je tomu tako
#include<stdio.h>
int main(void)
{
float x,y,z,f;
scanf("%g%g%g",&x,&y,&z);
f=abs(z);
printf("%g", f);
return 0;
}
zadatak je inače teži, al ne mogu ga riješit jer mi kad pokrenem taj teži zadatak program izbaci isto kao i za ovaj: 0 -.- ...moje je pitanje: zašto meni code blocks kada ja pokrenem program i upišem varijable npr 1,2,3 program ispiše 0, umjesto 3???greška je vjerojatno glupost neka, al ja se već sat vremena mučim s tim, i ne mogu naći razlog zašto je tomu tako
|
|
[Vrh] |
|
bbanelli Forumaš(ica)
Pridružen/a: 16. 03. 2011. (09:21:40) Postovi: (2C)16
Lokacija: Zagreb
|
Postano: 7:03 pet, 21. 10. 2011 Naslov: Re: nejasnoća vezana za code blocks |
|
|
[quote="malalodacha"]#include<stdio.h>
int main(void)
{
float x,y,z,f;
scanf("%g%g%g",&x,&y,&z);
f=abs(z);
printf("%g", f);
return 0;
}[/quote]Probaj stavljati sve ovo u /code/ blokove. Zaista je ljepse, iako nema veselih boja, barem ima font fiksne sirine.
[quote]zadatak je inače teži,[/quote]Koji zadatak, ne vidim nikakav tekst?
[quote]al ne mogu ga riješit jer mi kad pokrenem taj teži zadatak program izbaci isto kao i za ovaj: 0 -.- ...moje je pitanje: zašto meni code blocks kada ja pokrenem program i upišem varijable npr 1,2,3 program ispiše 0, umjesto 3???[/quote]
Za pocetak, ne znam u cemu programiras, no u slucaju da si pocetnik, omoguci u compileru prikazivanje svih gresaka (iako su tvoje ocigledne).
Prije svega, implicitno si deklarirao funkciju abs() - ona se nalazi u stdlib.h kojeg ti nemas includeanog.
Takodjer, koristis scanf(), koji je *zao*, i valjda (nadam se) su vas to opetovano upozoravali na vjezbama/predavanjima.
Zadatak mozes rijesiti tako da napises nesto ovako:
[code:1]scanf("%g",&x);
scanf("%g",&y);
scanf("%g",&z);[/code:1]
ili nestot tipa ovako:
[code:1]scanf("%g,%g,%g",&x,&y,&z);[/code:1]
Kako si inace zamislio da ti scanf() raspoznaje broj "23", "43" i "-87" ako ih zapises kao 2343-87, kako si naveo u svom kodu?
malalodacha (napisa): | #include<stdio.h>
int main(void)
{
float x,y,z,f;
scanf("%g%g%g",&x,&y,&z);
f=abs(z);
printf("%g", f);
return 0;
} | Probaj stavljati sve ovo u /code/ blokove. Zaista je ljepse, iako nema veselih boja, barem ima font fiksne sirine.
Citat: | zadatak je inače teži, | Koji zadatak, ne vidim nikakav tekst?
Citat: | al ne mogu ga riješit jer mi kad pokrenem taj teži zadatak program izbaci isto kao i za ovaj: 0 -.- ...moje je pitanje: zašto meni code blocks kada ja pokrenem program i upišem varijable npr 1,2,3 program ispiše 0, umjesto 3??? |
Za pocetak, ne znam u cemu programiras, no u slucaju da si pocetnik, omoguci u compileru prikazivanje svih gresaka (iako su tvoje ocigledne).
Prije svega, implicitno si deklarirao funkciju abs() - ona se nalazi u stdlib.h kojeg ti nemas includeanog.
Takodjer, koristis scanf(), koji je *zao*, i valjda (nadam se) su vas to opetovano upozoravali na vjezbama/predavanjima.
Zadatak mozes rijesiti tako da napises nesto ovako:
Kod: | scanf("%g",&x);
scanf("%g",&y);
scanf("%g",&z); |
ili nestot tipa ovako:
Kod: | scanf("%g,%g,%g",&x,&y,&z); |
Kako si inace zamislio da ti scanf() raspoznaje broj "23", "43" i "-87" ako ih zapises kao 2343-87, kako si naveo u svom kodu?
_________________ Matematika
Dijeli ljude na dvije grupe. One kojima nije jasna i one kojima nije jasno kako ovim prvima nije jasna.
§ https://www.pci-z.com/ §
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
Postano: 8:21 pet, 21. 10. 2011 Naslov: Re: nejasnoća vezana za code blocks |
|
|
[quote="bbanelli"]
Prije svega, implicitno si deklarirao funkciju abs() - ona se nalazi u stdlib.h kojeg ti nemas includeanog.
[/quote]
Točno, no dodatni problem je što [tt]abs[/tt] prima i vraća [tt]int[/tt], a kolega radi s floatovima, dakle treba mu [tt]fabs[/tt] koji prima i vraća [tt]double[/tt]. [tt]fabs[/tt] je deklariran u [tt]math.h[/tt]
[quote]
Takodjer, koristis scanf(), koji je *zao*, i valjda (nadam se) su vas to opetovano upozoravali na vjezbama/predavanjima.
[/quote]
Na što da ih upozorimo? Pa radimo u C-u, što drugo da koristimo za unos podataka? (Istina scanf može biti jako problematičan, ali raspravi o tome sigurno nije mjesto na [b]uvodnom[/b] kursu programiranja.)
[quote]
Zadatak mozes rijesiti tako da napises nesto ovako:
[code:1]scanf("%g",&x);
scanf("%g",&y);
scanf("%g",&z);[/code:1]
ili nestot tipa ovako:
[code:1]scanf("%g,%g,%g",&x,&y,&z);[/code:1]
Kako si inace zamislio da ti scanf() raspoznaje broj "23", "43" i "-87" ako ih zapises kao 2343-87, kako si naveo u svom kodu?[/quote]
Njegov scanf uredno radi, naime [tt]scanf("%g%g%g",&x,&y,&z);[/tt] očekuje unos tri floata odvojena razmacima. Slažem se da tako pisan poziv [tt]scanf[/tt]-a nije baš najčitljiviji, ali nije dobro napadati čovjeka i govoriti mu da takav poziv ne radi, kad radi točno ono što je čovjek i očekivao.
bbanelli (napisa): |
Prije svega, implicitno si deklarirao funkciju abs() - ona se nalazi u stdlib.h kojeg ti nemas includeanog.
|
Točno, no dodatni problem je što abs prima i vraća int, a kolega radi s floatovima, dakle treba mu fabs koji prima i vraća double. fabs je deklariran u math.h
Citat: |
Takodjer, koristis scanf(), koji je *zao*, i valjda (nadam se) su vas to opetovano upozoravali na vjezbama/predavanjima.
|
Na što da ih upozorimo? Pa radimo u C-u, što drugo da koristimo za unos podataka? (Istina scanf može biti jako problematičan, ali raspravi o tome sigurno nije mjesto na uvodnom kursu programiranja.)
Citat: |
Zadatak mozes rijesiti tako da napises nesto ovako:
Kod: | scanf("%g",&x);
scanf("%g",&y);
scanf("%g",&z); |
ili nestot tipa ovako:
Kod: | scanf("%g,%g,%g",&x,&y,&z); |
Kako si inace zamislio da ti scanf() raspoznaje broj "23", "43" i "-87" ako ih zapises kao 2343-87, kako si naveo u svom kodu? |
Njegov scanf uredno radi, naime scanf("%g%g%g",&x,&y,&z); očekuje unos tri floata odvojena razmacima. Slažem se da tako pisan poziv scanf-a nije baš najčitljiviji, ali nije dobro napadati čovjeka i govoriti mu da takav poziv ne radi, kad radi točno ono što je čovjek i očekivao.
_________________ Extraordinary claims require extraordinary evidence. – Carl Sagan
|
|
[Vrh] |
|
bbanelli Forumaš(ica)
Pridružen/a: 16. 03. 2011. (09:21:40) Postovi: (2C)16
Lokacija: Zagreb
|
Postano: 10:46 pet, 21. 10. 2011 Naslov: Re: nejasnoća vezana za code blocks |
|
|
[quote="mdoko"][quote]
Takodjer, koristis scanf(), koji je *zao*, i valjda (nadam se) su vas to opetovano upozoravali na vjezbama/predavanjima.[/quote]
Na što da ih upozorimo? Pa radimo u C-u, što drugo da koristimo za unos podataka?[/quote]fgets/getline i sscanf, recimo.
[quote](Istina scanf može biti jako problematičan, ali raspravi o tome sigurno nije mjesto na [b]uvodnom[/b] kursu programiranja.)[/quote]Ne da "moze biti" nego *jest* problematican.
Sada ce rant o tome da ne znaju koristiti pointere, ali ne znaju ih koristiti i ovako i onako, pa ne boli da "nauce napamet" iz pocetka raditi kako spada.
[quote]Njegov scanf uredno radi, naime [tt]scanf("%g%g%g",&x,&y,&z);[/tt] očekuje unos tri floata odvojena razmacima.[/quote]Da, ocekuje unos tri ispravno formatirana znaka odvojena definiranim white-spaceom (' ', \t, \n, \r... - zavisi od standarda i kompajlera). Nekako imam osjecaj da po njegovom pitanju koda to ili nije savladao, ili nikada nije saznao, zato sam i stavio jasniji "zapis".
[quote]Slažem se da tako pisan poziv [tt]scanf[/tt]-a nije baš najčitljiviji, ali nije dobro napadati čovjeka i govoriti mu da takav poziv ne radi, kad radi točno ono što je čovjek i očekivao.[/quote]Bas suprotno - poziv ce raditi tocno to sto je napisao, ali to moze biti daleko od onoga sto je ocekivao. Znas kako ide - racunala gotovo uvijek rade ono sto im se kaze, ali rijetko kad ono sto korisnik zapravo zeli. :)
Primjera imas na bacanje, od onih najtrivijalnijih, do onih malo zabasurenijih, to znas i sam. No problem je sto ljudi na stvarima tipa scanf i system("pause") i slicne glupavoce zapravo budu zatupljeni i totalno promasuju poante.
mdoko (napisa): | Citat: |
Takodjer, koristis scanf(), koji je *zao*, i valjda (nadam se) su vas to opetovano upozoravali na vjezbama/predavanjima. |
Na što da ih upozorimo? Pa radimo u C-u, što drugo da koristimo za unos podataka? | fgets/getline i sscanf, recimo.
Citat: | (Istina scanf može biti jako problematičan, ali raspravi o tome sigurno nije mjesto na uvodnom kursu programiranja.) | Ne da "moze biti" nego *jest* problematican.
Sada ce rant o tome da ne znaju koristiti pointere, ali ne znaju ih koristiti i ovako i onako, pa ne boli da "nauce napamet" iz pocetka raditi kako spada.
Citat: | Njegov scanf uredno radi, naime scanf("%g%g%g",&x,&y,&z); očekuje unos tri floata odvojena razmacima. | Da, ocekuje unos tri ispravno formatirana znaka odvojena definiranim white-spaceom (' ', \t, \n, \r... - zavisi od standarda i kompajlera). Nekako imam osjecaj da po njegovom pitanju koda to ili nije savladao, ili nikada nije saznao, zato sam i stavio jasniji "zapis".
Citat: | Slažem se da tako pisan poziv scanf-a nije baš najčitljiviji, ali nije dobro napadati čovjeka i govoriti mu da takav poziv ne radi, kad radi točno ono što je čovjek i očekivao. | Bas suprotno - poziv ce raditi tocno to sto je napisao, ali to moze biti daleko od onoga sto je ocekivao. Znas kako ide - racunala gotovo uvijek rade ono sto im se kaze, ali rijetko kad ono sto korisnik zapravo zeli.
Primjera imas na bacanje, od onih najtrivijalnijih, do onih malo zabasurenijih, to znas i sam. No problem je sto ljudi na stvarima tipa scanf i system("pause") i slicne glupavoce zapravo budu zatupljeni i totalno promasuju poante.
_________________ Matematika
Dijeli ljude na dvije grupe. One kojima nije jasna i one kojima nije jasno kako ovim prvima nije jasna.
§ https://www.pci-z.com/ §
|
|
[Vrh] |
|
|