Hilfe bei Programm
-
Hallo
Erstmal ein Lob an dieses Forum das mir schon bei so einigen Problemen geholfen hat!
Ich muss für die Uni ein Programm schreiben das sich aus 2 bestehenden zusammensetzt!
1. Einlesen einer Reihe von Zahlen über Pointer ohne Array ( verkettete Liste )
#include <iostream>
using namespace std;struct ListenElement
{
int wert; ListenElement * naechstesElement;
};void main()
{
int Eingabe;
ListenElement *akt_wert=NULL, *erster_wert=NULL, *n=NULL;
while(Eingabe!=0)
{
cout<<"Bitte Wert eingeben: ";
cin>> Eingabe;if(Eingabe!=0)
{
n = new ListenElement;
n->wert = Eingabe;
n->naechstesElement = 0;
if(erster_wert==NULL)
{
erster_wert=n;
akt_wert=erster_wert;
}
else
{
akt_wert->naechstesElement=n;
akt_wert=akt_wert->naechstesElement;
}}
}akt_wert=erster_wert;
cout<<"Eingegebene Liste" <<endl;
while(akt_wert!=NULL)
{
cout<<akt_wert->wert<<endl;
akt_wert = akt_wert->naechstesElement;}
}und einem Sortieralgorithmus der in der Art seiner Sortierung nicht veränder werden darf !
Das Array fällt natürlich weg da die Zahlen über die verkettete Liste eingelesen werden !#include <iostream>
using namespace std;void sortiere (int zaehler, bool sortier_richtung) ;
int reihe[50],zaehler;
void main(void)
{
beginn:
int i=0,wert=0;
bool richtung;cout << "Eingeben wieviele Werte (Max 50):";
cin >> zaehler;if (zaehler>50)
{
cout << "\n Nicht mehr als 50! \n" ; goto beginn ;
}
cout << "In welche Richtung soll sortiert werden (1 auf-, 0 absteigend)"<< endl;
cin >> richtung;if (richtung =0 )
{
cout<<"----------aufsteigend------------"<<endl;
}
else
{
cout<<"----------absteigend-------------"<<endl;
}for (i=0;i<zaehler; i++)
{
cout << "Bitte geben Sie den " << i+1 << ". Wert ein " ;
cin >> wert;
reihe[i] = wert;
}
sortiere(zaehler, richtung);cout << "\nSortierte Reihe:\n";
for (i=0;i<zaehler;i++)
{
cout << reihe[i]<< " ";
}
cout << endl;
}void sortiere(int zaehler, bool sortier_richtung)
{
int temp=0,max=0;if (sortier_richtung)
{
for (int i=0;i<zaehler;i++)
{
if (reihe[max]<=reihe[i]) max=i;
}
}
else if(!sortier_richtung)
{
for (int i=0;i<zaehler;i++)
{
if (reihe[max]>=reihe[i]) max=i;
}
}
temp=reihe[zaehler-1];
reihe[zaehler-1]=reihe[max];
reihe[max]=temp;if (zaehler>1) sortiere(zaehler-1, sortier_richtung);
}Das ganze soll ein Quellcode werden!
Mein Problem ist wie ich die Zahlen die ich über die verkettete Liste mit dem Sortieralgorithmus einlese und verarbeite!
Weiss nicht wie ich mit Pointer das Maximum der reihe finden und an den Letzten Platz setzen soll usw....
Hoffe mir kann jemand helfen! bin echt ne niete in C++
Danke
-
1. Benutze Code-Tags. Hier macht sich kaum einer die Mühe sowas Unformatiertes anzuschauen.
2. Füge beide Programme erstmal zusammen und entferne den redundanten Code (zB. das Einlesen der Zahlen)
3.
gekko schrieb:
Hoffe mir kann jemand helfen! bin echt ne niete in C++ confused:
Wenn du das beim Studium hast, solltest du aber besser werden!
-
so hab das ganze mal übersichtlich gemacht! Danke für den Tip

Hab zum Glück nur 2 Semester C++ und bin schon im 2ten!!Ich muss für die Uni ein Programm schreiben das sich aus 2 bestehenden zusammensetzt!
1. Einlesen einer Reihe von Zahlen über Pointer ohne Array ( verkettete Liste )
#include <iostream> using namespace std; struct ListenElement { int wert; ListenElement * naechstesElement; }; void main() { int Eingabe; ListenElement *akt_wert=NULL, *erster_wert=NULL, *n=NULL; while(Eingabe!=0) { cout<<"Bitte Wert eingeben: "; cin>> Eingabe; if(Eingabe!=0) { n = new ListenElement; n->wert = Eingabe; n->naechstesElement = 0; if(erster_wert==NULL) { erster_wert=n; akt_wert=erster_wert; } else { akt_wert->naechstesElement=n; akt_wert=akt_wert->naechstesElement; } } }und einem Sortieralgorithmus der in der Art seiner Sortierung nicht veränder werden darf !
Das Array fällt natürlich weg da die Zahlen über die verkettete Liste eingelesen werden !Wie ?????
#include <iostream> using namespace std; void sortiere (int zaehler, bool sortier_richtung) ; int reihe[50],zaehler; void main(void) { beginn: int i=0,wert=0; bool richtung; cout << "Eingeben wieviele Werte (Max 50):"; cin >> zaehler; if (zaehler>50) { cout << "\n Nicht mehr als 50! \n" ; goto beginn ; } cout << "In welche Richtung soll sortiert werden (1 auf-, 0 absteigend)"<< endl; cin >> richtung; if (richtung =0 ) { cout<<"----------aufsteigend------------"<<endl; } else { cout<<"----------absteigend-------------"<<endl; } for (i=0;i<zaehler; i++) { cout << "Bitte geben Sie den " << i+1 << ". Wert ein " ; cin >> wert; reihe[i] = wert; } sortiere(zaehler, richtung); cout << "\nSortierte Reihe:\n"; for (i=0;i<zaehler;i++) { cout << reihe[i]<< " "; } cout << endl; } void sortiere(int zaehler, bool sortier_richtung) { int temp=0,max=0; if (sortier_richtung) { for (int i=0;i<zaehler;i++) { if (reihe[max]<=reihe[i]) max=i; } } else if(!sortier_richtung) { for (int i=0;i<zaehler;i++) { if (reihe[max]>=reihe[i]) max=i; } } temp=reihe[zaehler-1]; reihe[zaehler-1]=reihe[max]; reihe[max]=temp; if (zaehler>1) sortiere(zaehler-1, sortier_richtung); }Das ganze soll ein Quellcode werden!
Mein Problem ist wie ich die Zahlen die ich über die verkettete Liste mit dem Sortieralgorithmus einlese und verarbeite!
Weiss nicht wie ich mit Pointer das Maximum der reihe finden und an den Letzten Platz setzen soll usw....
Hoffe mir kann jemand helfen! bin echt ne niete in C++
Danke