Nein der letzte Eintrag ist -1.
Die Frage ist nur was er genau vorhat, will er wirklich nur den letzten Wert(so wie es für mich klingt) oder will er den letzten Wert der nicht dem Standardwert entspricht(deine Schleife).
Ja ich wollte nur den wirklich letzten Wert
Noch ne Frage
Meine binary suche ist irgendwie kaputt returnt immer 0,kA warum, hat jemand eventuell zufaellig ne binaersuch Funktion auf Lager?
Oder muss ich l un r eventuell anders festlegen?
Der fragliche Teil:
Code
new mres = binsearch(MoneyPickups,pickupid,MoneyPickups[0],MoneyPickups[sizeof(MoneyPickups)-1]);
if(MoneyPickups[mres] == pickupid) return index=mres,MONEY_TYPE;
printf("ID:%d mres: %d",pickupid,mres);
Es kommt immer zu return 0 aus meiner binsearch funktion
Code
stock binsearch(a[],key,l,r)
{
new k;
while(r >=l)
{
k = (l+r)/2;
if(key == a[k])
{
return k;
}
if(key < a[k])
{
r = k-1;
}
else
{
l= k+1;
}
}
return 0;
}
Alles anzeigen
Habe als l das erste Element genommen also das am weitesten Links ist MoneyPickups[0] und das am weitesten rechts ist MoneyPickups[sizeof(MoneyPickups)-1]