Ersten false Wert eines bool Arrays finden mittels einer for Schleife
-
Hi,
ich habe hier 50 Lagerplätze. True = besetzt, false = frei.
Dieses Programm soll den ersten freien Lagerplatz finden und besetzen.#include <iostream> using namespace std; //Funktion um einen freien Lagerplatz zu suchen //False = frei, true = besetzt int Suche(bool Plaetze[50]){ for(int i=0; i<50; i++) { if(Plaetze[i]=false){ //Hier müsste eigentlich der erste freie return i;} //Lagerplatz zurückgegeben werden. Das passiert aber nicht. } } int main() { bool Lagerplatz[50]; //Es existieren 50 Lagerplätze for(int i=0;i<50; i++){ //Alle Lagerplätze werden mit false initialisiert. Lagerplatz[i] = false; //Demnach ist 0 der erste freie Platz } int Platz; Platz = Suche(Lagerplatz); //Den ersten freien Lagerplatz finden Lagerplatz[Platz]=true; //Den freien Lagerplatz besetzen for(int i=0; i<50; i++){ //Diese Schleife zeigt den Fehler im Programm. cout<<Lagerplatz[i]<<endl; //Nämlich dass kein einziger Lagerplatz } //besetzt wurde (alle Werte sind 0) return 0; }
Ich würde eigentlich erwarten, dass das Programm den ersten false Wert im Feld Lagerplatz findet und auf true setzt.
-
@theAnfänger77 Stelle Warnungen beim Kompilieren ein! Der Compiler wird dir sagen, was falsch ist.
Hinweis: Zuweisungen sind mit =, Vergleiche mit ==.
Außerdem hat deine Funktion kein return, wenn es kein freies Feld gibt.
Und verwende nicht überall "50" im Programm, sondern nimm eine Konstante. Lies https://de.m.wikipedia.org/wiki/Magische_Zahl_(Informatik)#Magische_Zahlen_in_Code
-
Vielen Dank!