Ich versuche, eine Funktion für die Suche nach dem maximalen Wert in einem Array zu schreiben, ohne dass C++ eingebauten Funktionen wie Art, max_element usw.C++: Funktion für Max Array Wert arbeitet nicht richtig
Ich habe dies entwickelt Code unten, und es entscheidet schließlich auf einem „Maximalwert“, aber es ist nicht immer richtig:
double dispMax(int farray[], int maxValue)
{
int max = farray[0];
for (int x = 0; x < maxValue; x++) //maxValue is size of farray
{
if (farray[x] > max)
{
max = farray[x];
return max;
}
}
}
Die Farray [] ist unsortiert, und besteht aus nur einer Liste von Datentypen (zB (123,25, 234,3 , 345,12)).
Manchmal scheint es, als ob es nicht sogar durch das gesamte Array iteriert, fast so, als ob es nur etwas findet, das es als Maximalwert betrachtet, und gibt dann sofort dieses zurück.
Auch wenn ich die Funktion anpassen, um stattdessen einen Mindestwert zu finden, bekomme ich ein ähnliches Ergebnis von fast FAST den Minimalwert, aber nicht ganz.
Jede Hilfe wird sehr geschätzt!
'maxValue ist die Größe von farray' Großer Name! Wie auch immer, mit einem Debugger können Sie das leicht herausfinden. – juanchopanza
Setzen Sie 'return max' aus der Schleife. Das ist alles. – skypjack
Das richtige Werkzeug, um solche Probleme zu lösen, ist Ihr Debugger. Sie sollten Schritt für Schritt durch Ihren Code * gehen, bevor Sie auf Stack Overflow nachfragen. Für weitere Hilfe lesen Sie bitte [Wie kleine Programme zu debuggen (von Eric Lippert)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Zumindest sollten Sie Ihre Frage so bearbeiten, dass sie ein [minimales, vollständiges und verifizierbares] (http://stackoverflow.com/help/mcve) Beispiel enthält, das Ihr Problem zusammen mit den Beobachtungen, die Sie im Debugger gemacht haben, reproduziert . –