c++ Eingaben in umgekehrter Reihenfolfe ausgeben
-
Hallo Leute;
ich habe von der Schule eine HÜ bekommen.
Da die Aufgabe stellung:
Ein Programm soll vom Benutzer 10 Werte abfragen und in einem Array
abspeichern.
Danach soll das Programm die Werte in umgekehrter Reihenfolge ausgeben.
Das ist mein Code aber es funktioniert nd:
#include <iostream>
using namespace std;int main()
{
int werte[10], i;for(i = 0; i < 10; i++) { cout << "Geben Sie eine Zahl ein: " << endl; cin >> werte[i]; } for(i = 0; i < 10; i++) { cout << werte[i] << endl; }
}
ich verstehe nicht, wie ich die eingegebenen Zahlen in umgekehrter Reihenfolge ausgeben soll?Danek im Voraus.
-
@Alimessi Welchen Wert muss i haben, wenn du das Element werte[9] ausgeben willst?
Die for-Schleife kann so ziemlich alles zählen. Aufwärts in Einerschritten ist zwar sehr häufig aber nicht vorgeschrieben.
-
@DirkB Der Wert von werte[9] kommt vom Benutzer also er erhält seinen Wert vom Benutzer.
-
Dirk hatte nach dem Wert von i gefragt, nicht nach dem von wert[9]!
Wenn du umgekehrt die Werte ausgeben willst, dann
- gib den letzten Wert aus
- gib den vorletzten Wert aus
- gib den vorvorletzen Wert aus
- ...
- gib den zehntletzten Wert aus (der zehntletzte ist der erste)
-
@Alimessi sagte in c++ Eingaben in umgekehrter Reihenfolfe ausgeben:
@DirkB Der Wert von werte[9] kommt vom Benutzer also er erhält seinen Wert vom Benutzer.
Ok, nochmal anders gefragt:
Welchen Wert muss i in
werte[i]
haben, wenn du das Elementwerte[9]
ausgeben willst?
-
@wob Danke!!
-
@DirkB Bin jetzt ein bisschen verwirrt
-
@Alimessi sagte in c++ Eingaben in umgekehrter Reihenfolfe ausgeben:
@DirkB Bin jetzt ein bisschen verwirrt
Noch anders gefragt: wie gibst du das letzte Element aus, wie das vorletzte?
Und dann überlege, wie du das in deiner Schleife machen kannst.
Du hast generell 2 Möglichkeiten, aber in beiden wirst du subtrahieren müssen.
-
Bei Raketenstarts wird ähnlich gezählt.
-
@Alimessi sagte in c++ Eingaben in umgekehrter Reihenfolfe ausgeben:
for(i = 0; i < 10; i++)
Die for-Schleife hat vier Angaben
for( Initialisierung; Bedingung; Ausdruck) SchleifenkörperDie Initialisierung wird am Anfang gemacht. Meist setzt man die Laufvariable auf einen Startwert. (kann auch wegfallen und vorher gemacht werden)
Die Bedingung wird geprüft ob sie wahr ist und nur dann wird der Schleifenkörper ausgeführt (kann auch wegfallen, dann ist sie immer wahr)
Der Ausdruck wird nach dem Schleifenkörper ausgeführt. Das kann jedwede Berechnung sein. Idealerweise ändert sie irgendwas am Zustand der Schleife.(kann auch wegfallen, dann muss es woanders gemacht werden)
Der Schleifenkörper ist der Code, der wiederholt werden soll.Wie setzt man die Laufvariable, wenn die Schleife bei 9 anfangen soll?
Wie muss man i berechnen, wenn der Wert um 1 verringert werden soll?
-
Hallo,
ich steh gerade mega auf dem Schlauch..
Ungeachtet der Fragestellung sollte das gezeigte Programm#include <iostream> using namespace std; int main() { int werte[10], i; for(i = 0; i < 10; i++) { cout << "Geben Sie eine Zahl ein: " << endl; cin >> werte[i]; } for(i = 0; i < 10; i++) { cout << werte[i] << endl; } return 0; }
Doch eigentlich 10 mal eine Zahl erfragen und nachdem 10 mal in der gleichen Reihenfolge wieder ausgeben.
Wenn ich das kompiliere und die Zahlen eintrage wird das Programm nachdem einlesen der Zahlen, also nach der ersten Schleife beendet. Wieso das?grüße
lou
-
@Lou-Cyphr3
Nö, das Programm gibt die 10 Zahlen aus, und wird dann beendet. Wahrscheinlich weißt Du nicht, wie man korrekterweise ein Konsolenprogramm startet.
-
Wird es wirklich einfach beendet?
-
Kann Problem nicht nachvollziehen: https://ideone.com/FM1CaZ
-
@manni66
Wie soll es sonst beendet werden, anstelle von 'einfach'?
-
@Belli sagte in c++ Eingaben in umgekehrter Reihenfolfe ausgeben:
@manni66
Wie soll es sonst beendet werden, anstelle von 'einfach'?Es könnte vorher noch Werte ausgeben?
-
@Belli anscheindend nicht!? wie gehts denn richtig?
Meine Frage war quasi warum wird die zweite schleife nicht mehr aufgerufen?
-
@Lou-Cyphr3
Du öffnest ein Konsolenfenster *, bewegst Dich in das Verzeichnis, in dem Deine exe-Datei liegt, tippst den Namen der exe-Datei in das Konsolenfenster und drückst Enter.- Alternativ dazu kannst Du in dem Explorerfenster in das Verzeichnis manövrieren und oben in die Adressleiste cmd tippen, dann geht ein Konsolenfenster auf und Du befindest Dich schon im richtigen Verzeichnis, Rest wie beschrieben.
Wenn Du einfach nur im Windows-Explorer die exe-Datei doppelt klickst, schließt sich das Konsolenfenster bei Programmende sofort wieder - das geht so schnell, dass Du die Ausgabe des Programms nicht mehr zu sehen bekommst.
-
@Lou-Cyphr3 sagte in c++ Eingaben in umgekehrter Reihenfolfe ausgeben:
@Belli anscheindend nicht!? wie gehts denn richtig?
Meine Frage war quasi warum wird die zweite schleife nicht mehr aufgerufen?Die WIRD ausgeführt! Sie dir doch den Link von @SeppJ an. Dann siehst du es grau auf weiß!
-
@Belli sagte in c++ Eingaben in umgekehrter Reihenfolfe ausgeben:
Alternativ dazu kannst Du in dem Explorerfenster in das Verzeichnis manövrieren und oben in die Adressleiste cmd tippen, dann geht ein Konsolenfenster auf und Du befindest Dich schon im richtigen Verzeichnis
Wow, man lernt nie aus.
-
@Swordfish Stimmt, ich hab dieses Jahr die 60 voll gemacht und lerne immer noch täglich dazu - allerdings könnte es mittlerweile auch sein, dass ich öfter dasselbe 'dazu' lerne ...