Poslao: 13 Okt 2014 09:08
|
offline
- Miloš CG

- Super građanin
- 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. 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.
|
|
Poslao: 13 Okt 2014 09:27
|
offline
- morando

- Građanin
- Pridružio: 19 Maj 2011
- Poruke: 297
|
Koristi modulo operator da vidis da li je broj neparan
- if( x % 2)
- {
- // broj je neparan
- }
|
|
|
|
Poslao: 13 Okt 2014 10:38
|
offline
- Miloš CG

- Super građanin
- 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?
|
|
|
|
Poslao: 13 Okt 2014 10:44
|
offline
- vasa.93

- Moderator foruma
- 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.
|
|
|
|
Poslao: 13 Okt 2014 10:48
|
offline
- Miloš CG

- Super građanin
- Pridružio: 23 Maj 2011
- Poruke: 1069
|
Okej, shvatio sam to za moduo, ali ne umijem da ga ubacim u samu petlju.
|
|
|
|
Poslao: 13 Okt 2014 10:53
|
offline
- vasa.93

- Moderator foruma
- 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.
|
|
|
|
Poslao: 13 Okt 2014 11:05
|
offline
- Miloš CG

- Super građanin
- 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
|
|
|
|
Poslao: 13 Okt 2014 11:13
|
offline
- vasa.93

- Moderator foruma
- 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...
|
|
|
|
Poslao: 13 Okt 2014 11:15
|
offline
- morando

- Građanin
- 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.
|
|
|
|
Poslao: 13 Okt 2014 11:34
|
offline
- Miloš CG

- Super građanin
- Pridružio: 23 Maj 2011
- Poruke: 1069
|
Evo ga, ovo je kod koji radi posao + Kod#include <stdio.h>
main()
{
int n,i;
i=1;
printf("Unesite broj: ");
scanf("%d",&n);
while( i < n )
{
if( i % 2 )
{
printf("%d", i);
}
i++;
}
}
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?
|
|
|
|