Ich versuche, eine einfache Rechtschreibprüfung Programm für Hausaufgaben zu schreiben, im Grunde, indem Sie ein Wörterbuch von 80.000 Wörtern in ein Array und dann eine binäre Suche, um zu sehen, ob das Wort im Array ist.Eine binäre Suchmethode schreiben, die Mühe hat, 1 (wahr) zurückzugeben, wenn ein Wort in einem Array gefunden wird. [Hausaufgaben]
Ich glaube, das Problem ist mit der ersten if-Anweisung zu tun, mit meiner Pause und 1 Zeilen zurück, aber ich kann falsch liegen. Was ich versuche zu tun, ist es so zu machen, dass wenn das Wort am Mittelpunkt des Arrays dasselbe ist wie die Zeichenkette, es aus der if-Anweisung und der while-Schleife ausbrechen und 1 zurückgeben sollte, wenn es nicht das gleiche ist Ich möchte, dass es weiter sucht.
Derzeit jedes Mal, wenn ich das Programm ausführen sagt es das Wort nicht gefunden wird, ob das Wort tatsächlich im Wörterbuch oder nicht ist.
Jede Hilfe mit, wo ich falsch gehe, wird sehr geschätzt.
int binarySearch(char string[9]) {
int low = 0;
int high = NUMBEROFDICTIONARYWORDS;
int midPoint;
char midPointWord[9];
while(high > (low + 1)) {
midPoint = (low + high)/2;
midPointWord[9] = dictionary[midPoint];
if(strcmp(string, midPointWord) == 0) {
return 1;
break;
break;
} else
if(strcmp(string, midPointWord) < 0) {
high = midPoint;
} else
low = midPoint;
}
return 0;
}
Können Sie Ihre Definition für 'dictionary' angeben? Das Problem impliziert, dass es 'char * dictionary []' sein sollte, aber Ihre Verwendung impliziert, dass es 'char dictionary []' ist. –
Ich habe es so definiert: String-Wörterbuch [NUMBEROFDICTIONARYWORDS]; –
Und geben Sie def char Zeichenfolge [9]; –