Kann mir jemand helfen mit meiner while-Schleife?
Schreiben Sie eine while-Schleife, die Drucke userNum geteilt durch 2 (integer-division) bis zur 1. Folgen Sie jede Zahl durch ein Leerzeichen. Beispiel für die Ausgabe für userNum = 20:
20 10 5 2 1
#include <iostream>
using namespace std;
int main()
{
int userNum = 0;
userNum = 20;
cout << userNum << " ";
while (userNum > 1)
{
userNum = userNum/2;
cout << userNum << " ";
}
cout << endl;
return 0;
}
Teilt es richtig, bis ich auf 0, wo er gibt mir 0 anstatt von Abbruch. Was mache ich falsch?
Dank!
- Macht es einfach halten, geben Sie 0? oder tut es Ihnen null 1 mal und dann kündigen?
- Der code, den Sie geschrieben habe, verhält Sie sich genau wie Sie es beschreiben sollte, ich bin nicht zu sehen, jede 0 als Ausgang
- "Er teilt richtig, bis ich auf 0, wo er gibt mir 0 statt Abbruch" meinst du, dass das Programm nicht funktioniert, wenn Sie
userNum = 0
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre geposteten code verhält sich genauso, wie Sie es erwarten.
Werde ich schlage vor, änderung code auch ein bisschen eine Frage der guten Praxis.
Statt:
Verwenden:
Gilt der Allgemeine Grundsatz:
Einen
for
Schleife sorgt für eine Natürliche Platzhalter für diese.Wenn du mit dem Schalter ein
for
Schleife, die ich empfehle, würde der code sein:http://ideone.com/SvU8z3
Ich habe versucht, alle diese Optionen, aber keiner von Ihnen arbeitete mit den anderen tests daher habe ich einige änderungen. Dies funktioniert perfekt für zybooks.