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: 14811
  • 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: 14811
  • 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: 14811
  • 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 774 korisnika na forumu :: 42 registrovanih, 7 sakrivenih i 725 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: A.R.Chafee.Jr., airsuba, antonije64, ccoogg123, chica, darkangel, deLacy, DonRumataEstorski, doom83, dushan, Gall, Georgius, HogarStrashni, hologram, Jahorina, JOntra, Kubovac, kuntalo, kybonacci, ljuba, loon123, madza, mercedesamg, MiroslavD, Mixelotti, NoOneEver Dreams, Ognjen D., panzerwaffe, procesor, raptorsi, repac, RJ, sasa87, simazr, Sićko, Srle993, uruk, vathra, VJ, wolf431, YugoSlav, žeks62