Poslao: 19 Mar 2015 08:51
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Aj... evo funkcije, pa nam ti napiši kako misliš da ona radi:
int brojCifara(int i)
{
if (i / 10 != 0)
return 1 + brojCifara(i / 10);
else
return 1;
}
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 19 Mar 2015 09:16
|
offline
- Miloš CG
- Super građanin
- Pridružio: 23 Maj 2011
- Poruke: 1069
|
Napisano: 19 Mar 2015 9:04
Srki_82 ::Aj... evo funkcije, pa nam ti napiši kako misliš da ona radi:
int brojCifara(int i)
{
if (i / 10 != 0)
return 1 + brojCifara(i / 10);
else
return 1;
}
Sad bih u glavnom programu trebao da imam nešto što sabira ove jednice koje proslijedi funkcija? I kasnije samo da ispišem sabirak?
Dopuna: 19 Mar 2015 9:07
nešto kao S = S + brojCifara(i) ?
Dopuna: 19 Mar 2015 9:16
Da, evo sam završio:
#include<stdio.h>
int brojCifara (int);
main()
{
int N, S=0;
printf("Unesite broj: ");
scanf("%d",&N);
S = S + brojCifara(N);
printf("Broj cifara je %d",S);
getch();
}
int brojCifara (int N) {
if (N/10 != 0)
return 1+brojCifara(N/10);
else
return 1;
}
Hvala vam
|
|
|
|
Poslao: 19 Mar 2015 09:37
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Miloš CG ::Sad bih u glavnom programu trebao da imam nešto što sabira ove jednice koje proslijedi funkcija?Funkcija ne prosleđuje jedinice već vraća broj cifara broja koji je prosleđen kao parametar.
Miloš CG ::nešto kao S = S + brojCifara(i) ? Ako je S = 0, da li možeš da nam pojasiš čemu onda sabiranje sa nulom? Umesto toga skroz bi validno bilo i:
S = brojCifara(N); pa i ovo:
printf("Broj cifara je %d", brojCifara(N));
|
|
|
|
Poslao: 21 Mar 2015 19:31
|
offline
- Pridružio: 11 Apr 2012
- Poruke: 98
|
Kao sto Vasa kaze "funkcija ne prosleđuje jedinice već vraća broj cifara" (kada se pozove u glavnom programu)...a da bi ona na kraju vratila broj cifara ona ce sama SEBI da prosledjuje jedinice, ali u glavni program vraca SAMO krajnji rezultat, tako da je koristis kao i svaku drugu f-ju
Npr za broj 1903:
S = brojCifara(1903);
zatim racuna:
brojCifara(1903)=1+brojCifara(190)
brojCifara(1903)=1+(1+brojCifara(19))
brojCifara(1903)=1+(1+(1+brojCifara(1)))
brojCifara(1903)=1+(1+(1+1))
brojCifara(1903)=4
i onda vrati u glavni program:
S=4;
|
|
|
|
Poslao: 21 Mar 2015 19:34
|
offline
- Miloš CG
- Super građanin
- Pridružio: 23 Maj 2011
- Poruke: 1069
|
Okej, ukapirao sam sad. Mislio sam da sabira jednice, ali sad mi je jasno. Hvala vam
|
|
|
|