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: 14824
- 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: 14824
- 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: 14824
- 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?
|
|
|
|