Chakky
Member of Honour
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:
Danke für Hinweise und Lösungsvorschläge
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;
}
Danke für Hinweise und Lösungsvorschläge
Zuletzt bearbeitet: