(FOR-Schleife) Ausgangszahl mit Multiplikator multiplizieren
-
Und da bin ich wieder und hab keinen blassen Schimmer was abgeht.
Also, hier ist meine Aufgabenstellung:
Die Ausgangszahl 2 wird mit dem Multiplikator 2 multipliziert. Das Produkt ist am Bildschirm anzuzeigen und dann mit dem um 2 erhöhten Multiplikator zu multiplizieren"
Übersteigt der Multiplikator den Wert 16, ist die Berechnung zu Beenden!Ein kleines Beispiel wurde mir noch angegeben:
2 * 2 = 4 * 4 = 16 * 6 = 96 * 8 = 768 .................
Die Aufgabe ist als FOR-WHILE und DO...WHILE-Schleife zu lösen.
Soweit bin ich bisher:
for ( zahl1 = 2 ; zahl1 < 9 ; zahl1 = zahl1 + 2 ) { cout << zahl1; }
Bitte helft mir!
MFG
Tray
-
Na dann multipliziere doch auch in der Schleife (Stichwort *=)
-
-zahl mit 2 initialisieren
-multiplikator in einer for-schleife initialisieren
-in der schleife die zahl jedes mal mit dem multiplikator multiplizieren *=
-multiplikator jedes mal um 2 erhöhen mit +=2
-abbruchbedingung: solange multiplikator<16, weitermachen...
-
Bin ich auf dem richtigen Weg?
for ( zahl1, zahl2 ; zahl1 < 9, zahl2 < 97 ; zahl1 += 2, zahl2 *= zahl2 ) { for ( zahl2 ; zahl2 < 97 ; zahl2 *= zahl2 ) cout << zahl1 << endl << zahl2; }
-
Du näherst dich - aber die innere Schleife brauchst du nicht wirklich (und am Anfang der äußeren Schleife solltest du noch zahl1 und zahl2 initialisieren).
-
Ich hab sie schon initialisiert und hab vergessen es euch zu zeigen:
int zahl1 = 2; int zahl2 = 2; // int erg; for ( zahl1, zahl2 ; zahl1 < 9, zahl2 < 97 ; zahl1 += 2, zahl2 *= zahl2 ) { cout << zahl1 << endl << zahl2; }
-
ähm, woher kommen die ganzen krummen dinger wie 9 und 97, in der aufgabenstellung sehe ich nur "2"??? und wozu zwei verschachtelte schleifen?
Und deine zahlen haben anscheinend weder einen datentyp, noch werden die initialisiert=> nächstes mal bitte den compiler zuerst bemühen, und erst danach hier irgendwelche codefetzen posten
-
Tray schrieb:
Bin ich auf dem richtigen Weg?
for ( zahl1, zahl2 ; zahl1 < 9, zahl2 < 97 ; zahl1 += 2, zahl2 *= zahl2 ) { for ( zahl2 ; zahl2 < 97 ; zahl2 *= zahl2 ) cout << zahl1 << endl << zahl2; }
Jain !
Tipp: Compilier es, führ es aus und schau, ob das Gewünschte rauskommt.
Ich kommentier mal Deinen Code:for ( zahl1, zahl2 ; // (Initialisierung) // macht GAR NICHTS entweder initialisierst Du hier variablen, // oder schreibst einfach ";" zahl1 < 9, zahl2 < 97 ; // (Schleifenbedingung) // was Du meinst, ist vermutlich "zahl1 < 9 && zahl2 < 97" // ... es soll doch solange "geschleift" werden, wie zahl1<9 UND zahl2 < 97 ist, oder ? zahl1 += 2, zahl2 *= zahl2 ) // (Ausführung) Korrekt !! { for ( zahl2 ; zahl2 < 97 ; zahl2 *= zahl2 ) // Das hier verstehe ich gar nicht: diese Schleife zählt zahl2 bis 97 hoch // ... und danach ist die äußere Schleifenbedingung auch nicht mehr gegeben.. cout << zahl1 << endl << zahl2; }
Gruß,
Simon2.
-
Natürlich hab ich einen Datentyp und zwar INT und initialisiert wird mit 2
int zahl = ";
was ist daran verkehrt?
und außerdem war meine Frage ob ich mich dem Ergebnis nähere. Du solltest vielleicht vorher die Beiträge auf meine Frage lesen. CScholl gab mir eine geeignete Antwort auf meine Frage nach der Annäherung des Ziels!!!
-
Tray schrieb:
und außerdem war meine Frage ob ich mich dem Ergebnis nähere. Du solltest vielleicht vorher die Beiträge auf meine Frage lesen. CScholl gab mir eine geeignete Antwort auf meine Frage nach der Annäherung des Ziels!!!
Erstens: Beruhige dich mal wieder. So schnell, wie hier geantwortet wird, überschneiden sich die Beiträge mitunter
Zweitens: Ich heiße immer noch CStoll.
Und drittens: Woher du die Werte 9 und 97 nimmst, ist mir auch schleierhaft - laut Aufgabenstellung sollst du bis 16 laufen.
-
Danke Simon.
Ich versuchs mal!!!
-
Sorry CStoll
war keine Absicht!
Aber auch Kommentare wie:
=> nächstes mal bitte den compiler zuerst bemühen, und erst danach hier irgendwelche codefetzen posten
Kann ich in eloquenten Foren verzichten!
Ich hab keine Lust mich auf eine solche Dilletanz einzulassen!!!
Sorry! Ich bin wieder die Ruhe in Person!!!
-
Tray schrieb:
Aber auch Kommentare wie:
=> nächstes mal bitte den compiler zuerst bemühen, und erst danach hier irgendwelche codefetzen posten
Kann ich in eloquenten Foren verzichten!
Ich hab keine Lust mich auf eine solche Dilletanz einzulassen!!!
okay... auf ratschläge und lösungsansätze kannst du also gerne verzichten, alles klar
:
#include <iostream> int main(){ int zahl=2; for(int multiplikator=2; multiplikator<=16; multiplikator+=2){ zahl*=multiplikator; std::cout<<zahl<<std::endl; } return 0; }
\ps: ich finde, die zeit von CStoll und Simon2 ist einfach zu schade dafür, um irgendwelche triviale rechtschreibfehler manuell zu korrigieren, die der compiler innerhalb von ~0.736 sekunden finden könnte, nur weil der OP zu gemütlich ist, um auf die "kompilieren"-schaltfläche zu clicken...