Hi@,
ich sitz hier jetzt seit ner gefühlten Ewigkeit und finde den vermeindlich lächerlichen Fehler einfach nicht..
Ich soll für das Praktikum ein Programm schreiben welches nach dem Quicksort-Verfahren Zahlen sortiert.
Das klappt alles soweit auch wunderbar, jetzt wollte (muss) ich noch eine Funktion einbauen, welche nach
Zahlen suchen kann. Bzw. 1. Zahl.
Allerdings schaffe ich es nicht die eingegebene Zahl, meiner Funktion "suche" zu übergeben.
Das ist der einzige Haken der noch vorherscht.
Nachfolgend jetzt die jeweiligen Codes.
Fehlermeldung:
Fehler 1 error C2065: 'suchzahl': nichtdeklarierter Bezeichner
Wenn ich nichts reinschreibe, sagt er ich muss was reinschreiben, und wenn ich ne beliebe Zahl einfüge, funktioniert es.
Wäre genial wenn jemand helfen könnte
Vielen Dank im Vorraus.
MfG
ich sitz hier jetzt seit ner gefühlten Ewigkeit und finde den vermeindlich lächerlichen Fehler einfach nicht..
Ich soll für das Praktikum ein Programm schreiben welches nach dem Quicksort-Verfahren Zahlen sortiert.
Das klappt alles soweit auch wunderbar, jetzt wollte (muss) ich noch eine Funktion einbauen, welche nach
Zahlen suchen kann. Bzw. 1. Zahl.
Allerdings schaffe ich es nicht die eingegebene Zahl, meiner Funktion "suche" zu übergeben.
Das ist der einzige Haken der noch vorherscht.
Nachfolgend jetzt die jeweiligen Codes.
Code:
//Die Funktionsdatei
#include "MeineListe.hpp"
void Liste::eingabe()
{
for(int i=0; i<99; i++)
{
zahlen[i] = rand();
}
cout << "99 Zahlen wurden Zufaellig erstellt, nun Eingabe der Letzten:" << endl;
cin >> zahlen[99];
//zahlen[99]= 10000;
}
void Liste::ausgabe()
{
for(int i=0; i<100; i++)
{
cout << i+1 <<". " << zahlen[i] << endl;
}
}
void Liste :: sortieren(int l,int r)
{
int links,rechts,hilfe;
float grenzwert;
links=l;
rechts=r;
grenzwert = zahlen[(l+r)/2];
do
{
while( zahlen[links] < grenzwert)
links=links+1;
while( zahlen[rechts]>grenzwert)
rechts=rechts-1;
if(links<=rechts)
{
if(links<rechts)
{
hilfe= zahlen[links];
zahlen[links]=zahlen[rechts];
zahlen[rechts]=hilfe;
}
links=links+1;
rechts=rechts-1;
}
}while(links<=rechts);
if(l<rechts)
{
sortieren(l,rechts);
}
if(r>links)
{
sortieren(links,r);
}
}
int Liste::setsuche()
{
int suchzahl;
cout << "Eingeben der zu suchenden Zahl:" <<endl;
cin >> suchzahl;
return suchzahl;
}
void Liste::suchen(int w)
{
int pos;
bool gefunden = false;
int anfang = 0;
int ende = 99;
while((anfang<=ende)&&(!gefunden))
{
pos = (anfang + ende)/2;
if(zahlen[pos]>w)
ende=pos-1;
else
{
if(zahlen[pos]<w)
anfang=pos+1;
else
gefunden=true;
}
}
cout << " Die Zahl " << w << " Befindet sich an der Position " << pos +1 <<endl;
}
Code:
//Headderdatei
#pragma once
#include <iostream>
#include <time.h>
using namespace std;
class Liste
{
public:
Liste(void){cout <<"Konstruktor von Liste" << endl;}
~Liste(void){cout << "Destruktor wurde aufgerufen" << endl;}
void eingabe();
void ausgabe();
void sortieren(int , int);
void suchen(int);
int setsuche();
private:
int zahlen[100];
int suchzahl;
};
Code:
//Die eigentliche Main
#include "MeineListe.hpp"
void main()
{
Liste neu;
neu.eingabe();
neu.sortieren(0,99);
neu.ausgabe();
neu.setsuche();
neu.setsuche();
neu.suchen(suchzahl); Hier ist der Fehler
system("Pause");
}
Fehlermeldung:
Fehler 1 error C2065: 'suchzahl': nichtdeklarierter Bezeichner
Wenn ich nichts reinschreibe, sagt er ich muss was reinschreiben, und wenn ich ne beliebe Zahl einfüge, funktioniert es.
Wäre genial wenn jemand helfen könnte

Vielen Dank im Vorraus.
MfG