lineare Suche Schönheitsfehler

Neue Frage »

Auf diesen Beitrag antworten »
pommes lineare Suche Schönheitsfehler

Meine Frage:
Lineare bzw. Binäre Suche Wie kann man sorgen, dass alle Treffer einer Zahl angezeigt werden.

Ich bitte um Hilfe und danke euch im Voraus.

Meine Ideen:
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;



int main() {


//die maximale Anzahl der Werte
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;

//den Zufallsgenerator initialisieren
srand (time (NULL));

cout << "Lineare Suche" << endl;
//die Werte setzen, benutzt werden zufällige Zahlen bis //200
for (int index = 0; index < MAX; index++) {
werte[index] = rand() % 200;
}
//zur Kontrolle ausgeben
cout << "Die Werte sind: " << endl;
for (int index = 0; index < MAX; index++)
cout << werte [index] << ' ';
cout << endl;
//Abfrage des Suchkriteriums
cout << "Wonach soll gesucht werden?";
cin >> kriterium;

//und jetzt suchen, bis das Ende erreicht wurde oder die //Zahl gefunden wird
while ((suchen < MAX) && (gefunden == false)) {
if (werte[suchen] == kriterium)
gefunden = true;
else
suchen++;

}
if (gefunden == true)
//bitte in einer Zeile eingeben
cout << "Der Wert " << kriterium << " befindet sich an der Position " << suchen + 1 << endl;
else
//Bitte in einer Zeile eingeben
cout << "Der Wert " << kriterium << " wurde nicht gefunden. " << endl;

return 0;

}
 
Auf diesen Beitrag antworten »
eulerscheZahl

Dann darfst du einfach die Suche nicht nach dem ersten Fund abbrechen.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main() {
	const int MAX = 100;
	int werte[MAX];
	int kriterium = 0;
	bool gefunden = false;
	srand (time (NULL));
	//die Werte setzen, benutzt werden zufällige Zahlen bis 200
	for (int index = 0; index < MAX; index++) {
		werte[index] = rand() % 200;
	}
	//zur Kontrolle ausgeben
	cout << "Die Werte sind: " << endl;
	for (int index = 0; index < MAX; index++)
		cout << werte [index] << ' ';
	cout << endl;
	
	//Abfrage des Suchkriteriums
	cout << "Wonach soll gesucht werden? ";
	cin >> kriterium;

	//und jetzt suchen, bis das Ende erreicht wurde
	for(int i = 0; i < MAX; i++) {
		if (werte[i] == kriterium) {
			gefunden = true;
			cout << "Der Wert " << kriterium << " befindet sich an der Position " << i + 1 << endl;
		}
	}
	if (!gefunden)
		cout << "Der Wert " << kriterium << " wurde nicht gefunden. " << endl;

	return 0;
}
Auf diesen Beitrag antworten »
Müller

wo liegt denn die Schönheitsfehler?

in Zeile 28 und 36?
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »