b-adische Darstellung
-
Hallo, kann mir jemand erklären, was diese funktion tut?
unsigned int ziffern(unsigned int b,unsigned int a){
unsigned int c=0;
if(a/b){ c=ziffern(b,a/b)+1;printf("%d",a%b);
return c;
}
Ich verstehe einfach nicht, warum das funktioniert.Wohin wird c gegeben?
Gruß, Julia
-
Das funktioniert gar nicht!
unsigned int ziffern(unsigned int b,unsigned int a) { unsigned int c=0; if(a/b){ c=ziffern(b,a/b)+1; //<- if wurde { geöffnet aber nicht geschlossen! printf("%d",a%b); return c; }
und c wird von der funktion zurückgegeben!
[EDIT]und zwar als unsigned int![/EDIT]mfg hohesC
-
Du brauchst c nicht
void ziffern (unsigned int b,unsigned int a) { if(a/b) ziffern (b,a/b); printf("%d",a%b); }
tut's auch
-
der sinn der variablen "c" und des returns war, die ziffern zu zählen...
das muss nicht weggemacht werden.die funktion an sich gibt zahl a mit basis b aus. z.b. a=1234 und b = 10 würde "1234" ausgeben (glaub ich jetz mal).
a = 10 und b = 2 würde "1010" ausgeben (1010 ist binär für 10 dezimal).
-
Hallo,
falls ich das richtig sehe, kann man 'c' dennoch weglassen:
unsigned int ziffern(unsigned int b,unsigned int a) { if(a/b) { return ziffern(b,a/b)+1; printf("%d",a%b); } return 0; }
mfg
v R