030
06.05.2003, 15:12 Uhr
~0xdeadbeef
Gast
|
Ja, aber. Beim zweiten Mal führt das irgendwie wieder von Rom weg - schau mal hier:
C++: |
#include<stdio.h>
int wandel(unsigned int); //Deklaration
main() { unsigned int zahl; int ergeb1, ergeb2; printf("Bitte Zahl eingeben: "); scanf("%d", &zahl); ergeb1 =wandel(zahl); ergeb2 = wandel(zahl); printf("\nBei der Zahl %d sind %d, ja, genau %d Einsen gesetzt\n", zahl, ergeb1, ergeb2); }
int wandel(unsigned int zahl) //Definition { static int ergeb=0; //Damit ergeb nicht immer auf 0 gesetzt wird
if(zahl!=0) { wandel(zahl/2); //Schöne Rekursion ergeb+=(zahl%2); } return ergeb; }
|
Führ das mal aus, und du siehst, wo der Fehler in deiner Routine liegt. |