Hilfe bei Schleife

  • C++

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hilfe bei Schleife

    Ich will ein Programm machen, dass dezimale in binäre Zahlen umwandelt.
    Zuerst will ich mal die Zahlen nach folgendem Prinzip berechnen:

    9 : 2 = 4 Rest: 1
    4 : 2 = 2 Rest: 0
    2 : 2 = 1 Rest: 0
    1 : 2 = 0 Rest: 1

    Resultat: 1001 (von unten nach oben!!)
    siehe: [Link]


    Ich hab mir gedacht, dass man das leicht durch eine Schleife lösen kann und die Restbeträge dann in ein array geschrieben werden. Nur leider klappt das mit der Schleife nicht:
    Das array habe ich mal rausgelassen und den Code nur auf's wesentliche geschrumpft:

    PHP-Quellcode

    1. #include <iostream.h>
    2. #include <conio.h>
    3. void main ()
    4. {
    5. int zahl=9, rest;
    6. for (int i=1; zahl==0; i++)
    7. {
    8. cout<<zahl<<"/2 = ";
    9. rest=zahl%2;
    10. zahl=zahl/2;
    11. cout<<zahl<<" Rest "<<rest<<"\n";
    12. }
    13. getch();
    14. }
    Alles anzeigen


    Wer kann mir sagen, was ich falsch mache. Bei einmaligem Durchlauf klappt das noch alles, aber sobald ich es 2x durchlaufen lassen möchte, passiert nichts. :confused:

    lg lalala22
    [SIZE="1"][COLOR="DeepSkyBlue"][COLOR="Black"]W[/color]ithout
    [COLOR="Black"]A[/color]ny
    [COLOR="Black"]R[/color]easons[/color]
    [/SIZE]
  • machs mit ner while schleife, du brauchst keine zählvariable und es ist fehlerunanfälliger ;)

    Aber dein Problem ist mir nicht ganz klar das Programm läuft doch auch, wenn man es 2mal startet? Ansonsten poste doch mal den kopletten code

    C-Quellcode

    1. #include <iostream.h>
    2. #include <conio.h>
    3. void main ()
    4. {
    5. int zahl=9, rest;
    6. while(zahl>0)
    7. {
    8. cout<<zahl<<"/2 = ";
    9. rest=zahl%2;
    10. zahl=zahl/2;
    11. cout<<zahl<<" Rest "<<rest<<"\n";
    12. }
    13. getch();
    14. }
    Alles anzeigen
  • Feuerstein schrieb:

    Aber dein Problem ist mir nicht ganz klar das Programm läuft doch auch, wenn man es 2mal startet?

    Hab mich vielleicht nicht ganz klar ausgedrückt ;) Ich meinte, dass die Schleife einmal durchlaufen geht, aber nicht wenn es mehr als ein mal ist...

    Weiss jetzt aber woran es gelegen hat. Anstatt dem zahl==0 hätte ich (wie in deiner while schleife) zahl>0 nehmen sollen.
    Allerdings "brauche" ich die for-Schleife, um die Arrays zu füllen.

    Danke für Deine Schnelle Hilfe!!

    Von mir aus kann dann auch schon wieder dicht gemacht werden.
    [SIZE="1"][COLOR="DeepSkyBlue"][COLOR="Black"]W[/color]ithout
    [COLOR="Black"]A[/color]ny
    [COLOR="Black"]R[/color]easons[/color]
    [/SIZE]