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:

  1. #include <stdio.h>
  2.  
  3. main()
  4. {
  5. int n, i;
  6. i=0;
  7. scanf("%d",&n);
  8.  
  9. while ( ??? )
  10. }


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

  1. if( x % 2)
  2. {
  3.     // broj je neparan
  4. }



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: 14825
  • 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: 14825
  • 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

  1. #include <stdio.h>
  2. main()
  3. {
  4. int n,i;
  5. i=1;
  6.  
  7. printf("Unesite broj: ");
  8. scanf("%d",&n);
  9.  
  10. while (i<n)
  11. {
  12.    i++;
  13.    if( n % 2)
  14. {
  15.     printf("%d",n);
  16. }
  17.  
  18. }
  19.  
  20.  
  21. }


ne radi Neutral

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14825
  • 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 :

  1. while( i < n )
  2. {
  3.     if( i % 2 )
  4.     (
  5.         printf("%d", i);
  6.     )
  7.     i++;
  8. }


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 1060 korisnika na forumu :: 28 registrovanih, 2 sakrivenih i 1030 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: 04bokibole, 357magnum, A.R.Chafee.Jr., Andrija 1993, BUDDAR70, cojapop, DragoslavS, eagle.rs, ivan979, janezek67, kolle.the.kid, Koridor, Lotus, Marko Marković, Markovic, miki kv, mir, mist-mist, mnn2, Naj-Turs, panzerwaffe, S-lash, shajone, suhoj27, tamno.nebo, Zorge, zziko, Ćorkan