C jezik - problem sa petljama

1

C jezik - problem sa petljama

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Imam naprimjer zadatak da korisnik unese neki broj N, i da se ispišu svi neparni brojevi od 0 do N. Treba da se koristi ili WHILE, ili DO WHILE ili FOR petlja. E sad:

#include <stdio.h> main() { int n, i; i=0; scanf("%d",&n); while ( ??? ) }

Ne znam kako da izdvojim neparne brojeve? Ili da mi dođe zadatak da ispišem parne ili svaki treći broj, ne bih znao. Confused Inače znam osnove petlji, da ispišem brojeve od 0 do N ili obratno.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 19 Maj 2011
  • Poruke: 297

Koristi modulo operator da vidis da li je broj neparan

if( x % 2) {     // broj je neparan }



offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Ne razumijem, kako da provjerim da je broj neparan ako on nije ni definisan nego treba da se pronađe? Kako da if funkciju ubacim u while?

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14623
  • Gde živiš: Niš

Petlja ti vrti od 1 do n (npr. x ide od 1 do N), pa ti za svako x proveravaš da li je parno ili neparno na način koji je Morando pomenuo.

Zašto treba izbaciti nulu? Zato što je ona ni parna ni neparna.

Inače, pogledaj malo šta i kako radi moduo operator.

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Okej, shvatio sam to za moduo, ali ne umijem da ga ubacim u samu petlju. Sad

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14623
  • Gde živiš: Niš

Samo prekopiraš kod koji je okačio Morando u telo petlje i modifikuješ blok "da" grane tako da štampa elemement. Bebee Dol

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

#include <stdio.h> main() { int n,i; i=1; printf("Unesite broj: "); scanf("%d",&n); while (i<n) {    i++;    if( n % 2) {     printf("%d",n); } } }

ne radi Neutral

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14623
  • Gde živiš: Niš

Zato što ne valja. Ti u svakom prolazu proverevaš da li je n paran, a ne da li je tekući broj paran...

offline
  • Pridružio: 19 Maj 2011
  • Poruke: 297

Ne treba da proveravas n nego i s'tim da treba da i pomeris inkrementovanje ispod :
while( i < n ) {     if( i % 2 )     (         printf("%d", i);     )     i++; }

Citas kod redom i zamisljaj svaki korak petlje kako se izvrsava.

Mozda bi pre svega trebao proveriti da li je i unos ispravan, jer bi trebalo uneti broj koji je veci od 1.

offline
  • Miloš
  • Pridružio: 23 Maj 2011
  • Poruke: 1069

Evo ga, ovo je kod koji radi posao Smile + Kod

Sad sam pokušavao da eksperimentišem i da promjenim program da ispusuje sve parne brojeve, ali nisam uspio. Mijenjao sam ovu dvojku if( i % 2 ) u druge brojeve ali neće. Šta je fora sa ovom dvojkom, neki ostatak pri djeljenju?

Ko je trenutno na forumu
 

Ukupno su 880 korisnika na forumu :: 49 registrovanih, 10 sakrivenih i 821 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Rade, A.R.Chafee.Jr., aljosa7, Atomski čoban, babaroga, Bane san, branko7, Brankoni, cenejac111, Ctrl x, darkangel, darkstar101, Dimitrise93, Dorcolac, dragon986, dule10savic, Georgius, Hoegaarden, ivan979, ivica976, Japidson, Kibice, kybonacci, loon123, Markoni29, MB120mm, MegaVLAdaR, mercedesamg, Mercury, Miha79, Misirac, Nekicoveculjak, NoOneEver Dreams, proka89, Rakenica, raketaš, Recce, rovac, ruan, S.Palestinac, Sirius, Snorks, Toni, vathra, Vlada1389, vlvl, vukovi, wolf431, yrraf