Programm für Studium
-
struct ListenElement { int wert; ListenElement *naechstesElement; ListenElement() : naechstesElement(0) { } ~ListenElement() { delete this->naechstesElement; } }; int main() { using namespace std; ListenElement Element, *Liste = ∈ for (;;) { cin >> Liste->wert; if (!Liste->wert) break; Liste = Liste->naechstesElement = new ListenElement; } return 0; }Da

-
Josey schrieb:
Sagen wir mal so: 1+2 ja, 3 größtenteils, 4 nein...
Hallo Josey,
ist doch prima; dann schreib doch mal ein Programm, welches in einer Schleife mit jedem Durchlauf eine Zahl einliest .... wir helfen Dir dann weiter.
Oder bist Du mit der Lösung von Gideon schon zufrieden?@life
Du hast den Member naechstesElement nicht korrekt belegt. Besser:struct ListenElement { ListenElement( int x ) : wert( x ), naechstesElement( 0 ) {} int wert; ListenElement* naechstesElement; }; int main() { using namespace std; list< ListenElement > l; for( int x; cin >> x; ) { l.push_back( ListenElement( x ) ); if( l.size() > 1 ) (----l.end())->naechstesElement = &l.back(); } return 0; }Gruß
Werner
-
struct ListenElement { int wert; ListenElement * naechstesElement; }; int main() { ListenElement* current, *top = new ListenElement; current = top; current->naechstesElement = 0; for( ;; ) { int tmp; cin >> tmp; if( !tmp ) break; current->naechstesElement = new ListenElement; current->wert = tmp; current = current->naechstesElement; current->naechstesElement = 0; current->wert = 0; } current = top; while( current ) { if( current->wert ) cout << current->wert; ListenElement* tmp = current; current = current->naechstesElement; delete tmp; } }Liebe Grüße von deinem Tutor, wir sprechen uns dann
-
Werner Salomon schrieb:
[...] for( int x; cin >> x; ) [...]überdenk das nochmal, das bricht nicht ab, wenn man ne 0 eingibt, sondern wenn der stream in nen fehlerzustand geht, besser wäre cin >> x && x, so fängt man den fehlerzustand ab und beendet, falls der stream in nen fehlerzustand geht und es wird bei der eingabe von ner 0 beendet.
-
Any schrieb:
Werner Salomon schrieb:
[...] for( int x; cin >> x; ) [...]überdenk das nochmal, das bricht nicht ab, wenn man ne 0 eingibt, sondern wenn der stream in nen fehlerzustand geht,
so isses gedacht

Any schrieb:
besser wäre cin >> x && x, so fängt man den fehlerzustand ab und beendet, falls der stream in nen fehlerzustand geht und es wird bei der eingabe von ner 0 beendet.
Ende mit x oder quit.
zugegeben; hab' wieder die Bedienungsanleitung nicht dabei gelegt.
Gruß
Werner
-
vllt lang und Umständlich aber ich schätze sowas will er:
#include<iostream> #include<stdio.h> struct ListenElement { int wert; ListenElement * naechstesElement; }Listenkopf; ListenElement* GetFirst(); ListenElement* GetLast(); void PutNew(int Zahl); int main() { ListenElement*Pointer; int Zahl; Listenkopf.wert=0; Listenkopf.naechstesElement=0; while(true) { cout<<"Zahl eingeben:"; cin>>Zahl; if(Zahl==0) { break; } else { if(Listenkopf.wert==0) { Listenkopf.wert=Zahl; } else { PutNew(Zahl); } } } Pointer=GetFirst(); while(true) { if(Pointer==GetLast()) { cout<<Pointer->wert<<endl; break; } else { cout<<Pointer->wert<<endl; Pointer=Pointer->naechstesElement; } } getchar(); } ListenElement* GetFirst() { return (&Listenkopf); } ListenElement* GetLast() { ListenElement* ListenElementPointer; ListenElementPointer=GetFirst(); while(ListenElementPointer->naechstesElement!=0) { ListenElementPointer=ListenElementPointer->naechstesElement; } return ListenElementPointer; } void PutNew(int Zahl) { ListenElement* ListenElementPointer; ListenElementPointer=GetLast(); ListenElementPointer->naechstesElement=new ListenElement; ListenElementPointer=ListenElementPointer->naechstesElement; ListenElementPointer->wert=Zahl; ListenElementPointer->naechstesElement=0; }Mfg
PS: Wenn du es erklären musst würd ich den Code nichjt unbedingt nehmen.. gibt ein paar Stellen die man noch optimieren hätte sollen...
-
ok vergiss das ham welche bessere geschrieben(hatte ich nicht gesehen)
-
Werner Salomon schrieb:
zugegeben; hab' wieder die Bedienungsanleitung nicht dabei gelegt.
Nicht beigelegt oder nicht gelesen?

Aufgabe schrieb:
Das fortlaufende Einlesen der Zahlenwerte wird durch die Eingabe 0 abgebrochen.
-
Karldin schrieb:
Mfg
PS: Wenn du es erklären musst würd ich den Code nichjt unbedingt nehmen.. gibt ein paar Stellen die man noch optimieren hätte sollen...Ja, ich muss es erklären, aber danke für die Arbeit von dir und den anderen
. Ich versuche jetzt noch mir selber zu erklären wie die ganzen Programme die hier gepostet wurden funktionieren, damit ich selber eines zusammenstellen kann. Ist auch nicht ganz einfach. Aber auch noch um Erklärungen zu bitten wäre doch etwas zu viel verlangt
.
-
Josey schrieb:
Aber auch noch um Erklärungen zu bitten wäre doch etwas zu viel verlangt
.LOL... was du gemacht hast war schon etwas viel verlangt & es hat (komischerweise) trotzdem geklappt

-
Eben. Darum bin ich auch verdammt dankbar. Ihr habt wohl mir einen großen Teil meines Semesters in Informatik gerettet!
-
Josey schrieb:
Karldin schrieb:
Mfg
PS: Wenn du es erklären musst würd ich den Code nicht unbedingt nehmen.. gibt ein paar Stellen die man noch optimieren hätte sollen...Ja, ich muss es erklären, aber danke für die Arbeit von dir und den anderen
. Ich versuche jetzt noch mir selber zu erklären wie die ganzen Programme die hier gepostet wurden funktionieren, damit ich selber eines zusammenstellen kann. Ist auch nicht ganz einfach. Aber auch noch um Erklärungen zu bitten wäre doch etwas zu viel verlangt
.Hallo Josey,
doch - wer konkrete Fragen stellt, der bekommt hier auch konkrete Antworten

Das ist allemal besser als zu sagen 'macht meine Hausaufgaben für mich'. Vergiss den Code den ich und life gepostet haben. Das war Spaß.Die anderen kannst Du zumindest als Grundlage hernehmen. Stell' aber ruhig Fragen, wenn Du was nicht verstanden hast und poste uns das was Du schon hast.
Gruß
Werner@finix: Erwicht! 'nicht gelesen' war richtig
