Komme bei meiner Auswertung nicht weiter
-
Hallo zusammen,
habe eine Lineare Suche mit 200 zufälligen Werten. Ich möchte nun die Werte durchsuchen und jede Übereinstimmung am Ende Ausgeben mit dem Positionswert.
Habe den Auszug aus meinem C++ Programm unten aufgeführt. Wenn ich nach einem Treffer abbreche kriege ich das hin aber wie ich nun die Suche fortsetze und alle gefundenen Positionen des Suchkriteriums ausgebe klappt nicht.
//max. Anzahl an Werten const int MAX = 100; //ein Feld für die Werte int werte[MAX]; //wurde schon ein Wert gefunden bool gefunden = false; //für die Suche int suchen = 0; int kriterium = 0; . . . . while (suchen < MAX) { if (werte[suchen] == kriterium) gefunden = true; cout <<"Der Wert " << kriterium << " befindet sich an der Position " <<suchen + 1 <<endl; suchen ++; } if (gefunden == false) cout << "Der Wert " << kriterium << " wurde nicht gefunden." << endl; return 0;Wäre super wenn mir jemand auf die Sprünge helfen könnte, danke.
-
Fehlen da nicht Klammern?
Scriptlaie schrieb:
while (suchen < MAX) { if (werte[suchen] == kriterium) { // <=== gefunden = true; cout <<"Der Wert " << kriterium << " befindet sich an der Position " <<suchen + 1 <<endl; } // <=== suchen ++; }
-
du hast genau diese Frage vor ein paar Tagen schonmal gestellt. Was genau hast du nicht verstanden?
-
//max. Anzahl an Werten const int MAX = 100; //ein Feld für die Werte int werte[MAX]; //wurde schon ein Wert gefunden bool gefunden = false; //für die Suche int suchen = 0; int kriterium = 0; . . . . std::vector<int> hits; // <-- neu while (suchen < MAX) { if (werte[suchen] == kriterium) { // <-- neu gefunden = true; cout <<"Der Wert " << kriterium << " befindet sich an der Position " <<suchen + 1 <<endl; hits.push_back(suchen + 1); // <-- neu } // <-- neu suchen ++; } if (gefunden == true)// <-- neu {// <-- neu cout << "An folgenden Positionen wurden übereinstimmungen gefunden" << endl;// <-- neu for(a = 0; a < hits.end(); a++)// <-- neu {// <-- neu cout << "Position " << hits[a] << endl;// <-- neu }// <-- neu }// <-- neu if (gefunden == false) cout << "Der Wert " << kriterium << " wurde nicht gefunden." << endl; return 0;
-
Oh sorry das war dumm von mir ein neues Thema zu eröffnen.
Aber habs jetzt geschafft. Danke für die Vector Lösung geht natürlich auch aber habe es jetzt mit einer normalen Schleife hin bekommen.
Danke