Poslao: 04 Dec 2007 16:11
|
offline
- N1k0l4

- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
Pokusao sam da uradim program u C-u koji ce mi izbaciti za uneti broj n, sve armstrongove brojeve do tog broja(brojevi ciji je zbir kubova jednak samom broju)
Uradio sam ga ovako, ali nesto mi ne stima.... ova promenljiva kraj sluzi samo da mi ne izadje odmah iz programa dok ne unesem nesto... ali kad ukucam gornju granicu nista se ne pojavi, i ne moze da mi bilo sta prihvati
Pocetnik sam jos uvek u c-u, moguce da sam na nekoj gluposti napravio gresku
kod je sledeci:
i nije mi ovo domaci, i ne trazim da mi ga uradite, nisam nikad to ni trazio, vec samo pogledate zasto nece da radi.
Inace ovaj kod prolazi kompajliranje....
#include<stdio.h>
int jednak_kubu(int n);
int kub(int k);
main(){
int kraj;
int gornjagranica; //gornja granica dokle ce se kretati petlja
int i; //brojac
printf("Uneti gornju granicu=\n");
scanf("%d", &gornjagranica);
printf("Brojevi ciji je kub cifara jednak samom broju su:\n");
for(i=10; i<=gornjagranica; i++)
{
if(jednak_kubu(i)==1) //poziva funkciju za proveru da li mu je zbir kubova cifara jednak samoj cifri
printf("%d\n", i);
}
scanf("%d", &kraj);
}
int jednak_kubu(int n){
int p=0; //ukoliko je p=0 onda nije jednak zbiru kubova, ukoliko jeste p ce se promeniti na 1
int zadnjacifra=0, prvacifra=1; //prvacifra sam postavio na 1 da bi bila razlicita od nule, posle ce se njena vrednost promeniti
int proizvod=1, zbir=0;
while(prvacifra!=0)
{
zadnjacifra=n%10;
zadnjacifra=kub(zadnjacifra);
zbir +=zadnjacifra;
prvacifra=n/10;
}
if(zbir==n) //provera da li je zbir kubova jednak sa samom ciform, ukoliko jeste p se menja na 1
p=1;
return p;
}
int kub(int k) //racunanje kuba broja
{
int trecistepen=1;
trecistepen=k*k*k;
return trecistepen;
}
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
|
Poslao: 04 Dec 2007 18:17
|
offline
- N1k0l4

- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
Meni opet ne radi
sta ti pise recimo kad pokrenes i kad ukucas za gornju granicu neki broj tipa 12345?
|
|
|
|
Poslao: 04 Dec 2007 20:56
|
offline
- zoranez

- Super građanin
- Pridružio: 30 Maj 2005
- Poruke: 1014
- Gde živiš: Mbabane
|
Pa ispise se ono pod sledecom printf naredbom ... nisam te pitala u cemu radis i sta se tebi zapravo tacno desi kad pokrenes program?
|
|
|
|
Poslao: 04 Dec 2007 21:15
|
offline
- Riddler

- Elitni građanin
- Pridružio: 16 Jun 2005
- Poruke: 2392
- Gde živiš: Beograd
|
Evo ovako:
#include<stdio.h>
int jednak_kubu(int n);
int kub(int k);
void main(){
int gornjagranica;
int i;
printf("Uneti gornju granicu=\n");
scanf("%d", &gornjagranica);
printf("Brojevi ciji je kub cifara jednak samom broju su:\n");
for(i=10; i<=gornjagranica; i++)
{
if(jednak_kubu(i))
printf("%d\n", i);
}
getchar();
getchar();
}
int jednak_kubu(int n){
int p=n,zadnjacifra=0,zbir=0;
while(p){
zadnjacifra=p%10;
zadnjacifra=kub(zadnjacifra);
zbir +=zadnjacifra;
p/=10;
}
if(zbir==n) p=1;
return p;
}
int kub(int k)
{
int trecistepen;
trecistepen=k*k*k;
return trecistepen;
}
Blago modifikovan tvoj kod, onako nije radio...
prvacifra ti je stalno bila n/10, jer n nije dobijao vrednost n/10
Ako ti nesto nije jasno, pitaj...
|
|
|
|
Poslao: 04 Dec 2007 23:10
|
offline
- N1k0l4

- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
tacno tacno tacno...
hvala ti, pretpostavio sam da sam napravio neku logcku gresku ali nisam primetio koja je.
Hvala ti
|
|
|
|
Poslao: 04 Dec 2007 23:11
|
offline
- Riddler

- Elitni građanin
- Pridružio: 16 Jun 2005
- Poruke: 2392
- Gde živiš: Beograd
|
Nema na cemu, nije tesko da se pomogne kad znam i kada neko ima konkretan problem...
|
|
|
|
Poslao: 04 Dec 2007 23:11
|
offline
- N1k0l4

- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
jedino mi nije prihvatalo void main(){ jer kaze da mora da vraca int
|
|
|
|
Poslao: 04 Dec 2007 23:14
|
offline
- Riddler

- Elitni građanin
- Pridružio: 16 Jun 2005
- Poruke: 2392
- Gde živiš: Beograd
|
Koji kompajler koristis ?verovatno je do toga, microsoft visual studio prihvata i ovako, mada su to sitnice...
|
|
|
|
Poslao: 05 Dec 2007 00:42
|
offline
- N1k0l4

- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
Koristim Dev c++, tj. sad sam ga tu kompajlirao, inace kucam ga pod linux-om skoro uvek, i koristim njegov kompajler, sad sam zurio pa me mrzelo da prelazim u linux.
hvala jos jednom
|
|
|
|