true wird als false erkannt
-
@theAnfänger77 Ich habe dir doch gerade vorhin schon gesagt, dass du mit Warnungen kompilieren sollst und dass deine Funktion fehlerhaft ist. Du solltest sowas wie
warning: control reaches end of non-void function [-Wreturn-type]
bekommen.Außerdem ist dein Lagerplatz nicht initialisiert. Du hast 50 zufällige Werte in Lagerplatz.
Der andere Fehler ist der hier:
cout<<"Lagerplatz "<<Plaetze[i]<<" ist frei."<<endl;
Plaetze[i] ist ein bool, also 0, weil du ja nach false suchst. Du willst ausgeben:
cout<<"Lagerplatz "<< i <<" ist frei."<<endl;
-
Warum machst du es dir so schwer und verwendest keinen std::vector? Evtl solltest du dein Lernmaterial hinterfragen ob es noch zeitgemäß ist.
-
Vielen Dank nochmal!
-
Kleiner Tipp am Rande:
bool Lagerplatz[50]{}; // Alle auf false initialisiert
In C oder älteren Standards:
bool Lagerplatz[50] = {0};
Die Größe des Arrays solltest Du in
Suche
nicht hardcoden, aber das wurde ja schon gesagt.
-
übrigens die verwendung von präprozessorkonstanten, also sowas wie
#define NUMPLAETZE 50 int Suche(bool Plaetze[NUMPLAETZE]) { for(i = 0; i < NUMPLAETZE; i++) ..... } int main() { bool Lagerplatz[NUMPLAETZE]; ..... }
solltest du dir unbedingt angewöhnen. wenn du plötzlich 55 plätze brauchst, musst du bei der verwendung von präprozessorkonstanten nur eine stelle ändern, aber sonst suchst du dich irgendwann tot.
-
@Wade1234
übrigens die verwendung von präprozessorkonstanten [...] solltest du dir unbedingt angewöhnen.
Lach ich dacht grad ich lese nicht richtig :o
Bitte gewöhn dir das nicht an. Wenn schon sowas wie:
constexpr int NUMPLAETZE{50};
-
wtf sowas gibt es?
-
-
-
@HarteWare sagte in true wird als false erkannt:
@Wade1234
übrigens die verwendung von präprozessorkonstanten [...] solltest du dir unbedingt angewöhnen.
Lach ich dacht grad ich lese nicht richtig :o
Bitte gewöhn dir das nicht an. Wenn schon sowas wie:
constexpr int NUMPLAETZE{50};
genau. Wenn überhaupt, dann so. Präprocessor-Konstanten gewöhnt man sich am besten gar nicht an. Und schon gar keine, die mit Programmablauf zu tun haben. Präprocessorkonstanten sind eher was für das Makefile ( -D ).
Abgesehen davon arbeitet man in der Realität selten mit festen Längen von Containern. Die Länge ist meist unbekannt also dynamisch oder sie ergibt sich aus Startparametern der Anwendung oder Konfigurationsdateien.