drucken Anzahl in umgekehrter
im einfach gefragt, ob das ok ist. ich wurde gebeten, das folgende zu tun. Schreiben Sie ein Programm, das ständig bitten Sie den Benutzer für die positiven ganzen zahlen (bis
Benutzer gibt eine negative ganze Zahl ist, an dem das Programm beendet wird). Jeder
Zeit, die der Benutzer eingibt, eine positive ganze Zahl ist, wird das Programm drucken Sie diese ganze Zahl in
reverse. Ihr Programm sollte eine Funktion haben, die akzeptiert und integer und zurück
ein integer in umgekehrter. Zum konvertieren integer zu seiner Rückseite, wird Ihr Programm nennen
mit dieser Funktion. am Ende jeder Ausgabe bekomme ich immer 0. erklären Sie bitte, warum. auch wenn ich void main mit der Funktion bekomme ich Müll. erklären Sie bitte, warum. vielen Dank im Voraus
dies ist mein code....
#include<iostream>
#include<cstdlib>
using namespace std;
int reverseNum(int num){
for(int j=num; j>0; j--)
cout<<j<<" ";
cout<<endl;
return false;
}
int main(){
double enternum = 0;
do{
cout<<"Enter a positive number > 0, to begin countdown ";
cin >>enternum;
cout<<reverseNum(enternum);
cout<<endl;
}
while(enternum>0);
if(enternum<=0)
cout<<"Invalid entry, good bye.";
cout<<endl;
return 0;
}
- Ist dieses Hausaufgaben? Auch, viele der Probleme mit Ihrem code.
- muss Sie sein double oder int?
- pls erklären, diese problem
- Die Beschreibung scheint darauf hinzudeuten, dass für die Eingabe
12345
Sie erwarten, dass die Ausgabe54321
, aber in deinem code würde es drucken12345 12344 12343...
Dass von der höchsten Ebene der Abstraktion, dann wird der code, Lesen Sie eindouble
aber es passieren eine Funktion, die einenint
, kehren Sie einbool
(immerfalse
) von einer Funktion, die gemeint ist, um eineint
... und Sie drucken, dass die Rückgabe Wert? Immer0
? Sollten Sie vielleicht anfangen, über das, was das eigentliche problem ist, dann auf das design der Lösung (was sollten Ihre Schnittstellen Aussehen?) und dann diese Schnittstellen implementieren. - 1. Sie sagen, Sie bitten, für eine ganze Zahl speichern, es in ein double, und geben Sie dann doppelt auf eine Funktion, die einen integer. 2. es sieht nicht wie Sie brauchen, um
#include<cstdlib>
. 3. Dieser 4. Es ist unklar, ob Sie nicht verstehen, die problem-oder wir verstehen dich nicht... - Nur zum Spaß ich habe versucht, kommen mit einem floating-point-version. Ich erkannte einen Fehler in der Skalierung für die Ausgabe, aber ich lasse es für jetzt 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
aufgrund von:
return false;
- ich überlasse es Ihnen, herauszufinden, der rest..void...
ausreichen wird - auch gibt es keine Notwendigkeit zum drucken der return-Wert (die Sie nicht in der Lage sein zu tun, wenn der Rückgabetyp der Funktion geändert wird, umvoid
) - aber - ich fordere Sie auf, wieder Lesen die Frage...Die Funktion soll umkehren, die ganze Zahl und dann das Ergebnis zurückgeben. Zum Beispiel, wenn die Eingabe 123 ist, dann gibt die Funktion 321.
Ihre Funktion gibt einen count-down und gibt 0 zurück (=false).
Umkehren einer Zahl, können Sie a) konvertieren Sie es in einen string umkehren der Zeichenfolge konvertieren zurück zu integer; b) tun Sie es auf Ganzzahlen direkt mit mathematischen division /Multiplikation /addition /modulo-Operationen.
In C++, die Sie nicht verwenden
void main()
.Ein
0
denn wenn Siereturn false
, ist das Ergebnis vom Typbool
implizit in einen int-Wert und wird gedruckt auf der Liniecout<<reverseNum(enternum);
Auch, In dieser Zeile
double enternum = 0;
Sie möchten eine Ganzzahlint
.Aus deinem text dachte ich, war das Programm wie vorgesehen funktioniert, aber aus der Lektüre der code, den ich nehme an, es gilt nur nach unten aus der Reihe. War es das, was du wolltest?
Ich würde umgesetzt haben, ist es so (und hier die Funktion Rückgabe eines integer Sinn macht auch):
Ihre reverseNum Funktion zurückgeben soll, die umgekehrte integer, nicht falsch. und es sollte nicht drucken die Anzahl wie auch, es sind die Anrufer, die angeblich um es zu drucken.
wenn man es tut:
dann sollte ich enthalten 4321 als ganze Zahl (NICHT als string).
der Grund Sie halten, immer 0 ist, denn false ist äquivalent zu 0 als integer.
Lesen Sie die C++ - FAQ in seiner Gesamtheit. Sie sollten vor allem Lesen diese. Sie sollten auch lernen, wie man den code Debuggen. Wenn Sie trat durch den code in einem debugger dann alle Antworten, die Sie gegeben haben, wird hier offensichtlich.
Für viel Spaß, ich habe versucht, eine generische Implementierung, die unterstützt jede Integrale - oder floating-point - Typ unterstützt von Ihrem compiler.
Seien Sie gewarnt, es gibt eine Reihe von Fragen:
Oh, entfernen Sie den DEBUGTRACE-definition zu bekommen ... die debug-Ablaufverfolgung 🙂
Sehen Leben hier [klicken Sie auf]TM