, also habe ich mit diesem für einen alten Tarif gekämpft, während jetzt und etwas Hilfe mit bool Funktionen brauchen. Ich bin auf der Suche Teil der Helfer in pset3 fest.CS50 pset3 findet immer wahr
Ich weiß meine Auswahl Sortierfunktion funktioniert, wie ich printf verwendet, um zu überprüfen, die Zahlen sortiert werden, und ich testete finden mit einer einfachen linearen Suche, um zu bestätigen, dass es richtig funktioniert.
Mein Code für die Suchfunktion ist wie folgt:
bool search(int value, int values[], int n)
{
// Set upper and lower limits for mid point calculation
int max = n - 1;
int min = 0;
while (min <= max)
{
// Set the mid point of values as half the difference of the upper and lower limit.
int mid = (max - min)/ 2;
// If the array position we look at for this itteration of mid is equal to the value, return true
if (value == values[mid])
return true;
// If the mid value is less than our value, look at the right half (+1 as we dont need to look at the mid point again)
else if (value > values[mid])
return min = mid + 1;
// Same principle but for the left half of the array
else if (value < values [mid])
return max = mid - 1;
}
return false;
}
Soweit ich meine Logik für die eigentlichen Berechnungen wird der Ton sagen kann. Ich habe versucht, eine Anzahl von verschiedenen Möglichkeiten der Rückgabe false, wie "Wenn (Wert < Werte [Mitte + 1] & & Wert> Werte [Mitte -1]", um falsch, aber ohne Erfolg zurück, so habe ich sie weggelassen aus dem Code hier. Jede Hilfe wäre sehr geschätzt.
Prost
Tom
Sie waren genau an der Stelle, die ich versuchte, meine neue Min und Max, die für jeden Wert wahr zurückgegeben wurde. Ich hätte feststellen müssen, dass es in allen Fällen, in denen es sich um eine echte Rückkehr handelte, der Fehler bei meiner Rückkehr war. Danke für die Hilfe. – TomForrest