| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: C++ Ringliste Vorgänger suchen im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hi HaBo, mein Frauchen hat ein kleines Problem unter C++ und einer Ringliste. Sie gibt 10 Werte ein und ...
![]() |
| | #1 (permalink) |
| Senior Member | C++ Ringliste Vorgänger suchen Anzeige Hi HaBo, mein Frauchen hat ein kleines Problem unter C++ und einer Ringliste. Sie gibt 10 Werte ein und bestimmt bei einer beliebigen Zahl (die auch eingegebn wird) den Vorgänger. Das Funktioniert bei 9 von 10 Fällen, sprich bei einer eingabe von 1 2 3 4 5 6 7 8 9 10 und als Suche 5. Wird Ordnungsgemäß die 4 Angezeigt, bei allen anderen Suchwerten auch. Nur bei der 1 als Suchwert wird keine 10 Ausgegebn sondern die 2. Weis einer warum und ob es mit einer Doppeltverkettenliste das funktionieren würde, nur dann ist wieder die frage wie wird das Implementiert. Hier der Code: Code:
#include <iostream>
using namespace std;
struct nummer
{
int a;
nummer *b;
};
int main ()
{
nummer *first,*current,*before,*davor;
int i;
int n;
first = new nummer;
cout << "Eingabe:\n";
cin >> first ->a;
first-> b =first;
current=first;
before=first;
davor=first;
i = 1;
while (i!=10)
{
current->b =new nummer;
current = current-> b;
current ->b =first;
cin >>current->a;
i++;
}
current= first;
cout<<"Suche nach einer Zahl:\n";
cin>> n;
while (n!=current->a)
{
davor=before;
before=current;
current=current->b;
}
cout<<davor->b->a;
system("PAUSE");
return 0;
}
__________________ cu Chakky we are dreaming in digital we are living in realtime we are thinking in binary we are talking in IP welcome to our world Geändert von Chakky (25.07.11 um 13:57 Uhr) |
| | |
| | #2 (permalink) |
| Registriert seit: 14.04.06 ![]() Likes: 4 | Hi, das Problem ist, dass die Variable "davor" nicht korrekt initalisiert wird. Bei Eingabe der 1 kommst du in die zweite While-Schleife gar nicht rein, deshalb zeigt sie auf den ersten Wert. Mit einer doppelt oder rückwärts verketteten Liste ist es natürlich auch möglich, das Problem zu lösen. Zwingend nötig ist das aber nicht. Mir ist auch nicht so ganz klar, warum du nicht nur die Variable "before" benutzt. Ich habe mir erlaubt, den Code zu korrigieren, mir wäre aber wichtig, dass du/deine Frau es erst einmal selbst versuch[s]t. |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Senior Member Themenstarter | Vielen dank dir. Frauchen saß heute schon eine Weile dran und kam zu keiner richtigen Lösung, ich selber hab von den Listen keinen Plan.
__________________ cu Chakky we are dreaming in digital we are living in realtime we are thinking in binary we are talking in IP welcome to our world |
| | |
| | #4 (permalink) |
| Senior Member Registriert seit: 13.07.08 ![]() ![]() ![]() Likes: 85 | Protip: Boost hat eine Ringpuffer-Klasse
__________________ "It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."+++ BREAKING +++ Troll ertrinkt im Planschbecken +++ |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |