Ermitteln des größten Werts eines Arrays



  • Hallo Community ,

    ich komme grad bei einer Aufgabe nicht weiter.
    Und zwar soll ich per Funktionen den größten und kleinsten wert des Arrays herausfinden

    Habe nun mal eine Funktion für den größten Wert geschrieben mithilfe der Selektionssortierung .

    Meine Vermutung ist das ich das Array falsch ausgebe den ich gebe das sortierte Array aus, da ich aber nicht weiß wie ich den zuvor ermittelten wert ausgebe frage ich euch.

    Und noch eine Frage kann ich da nicht mit Void arbeiten ? und warum ?

    Danke schonmal für eure Antworten

    Hier der Code :

    #include<iostream>
    #include<iomanip>
    #include<cstdlib>
    
    double max_such(double adUmsatz[], int size);
    double min_such(double adUmsatz[], int size);
    
    using namespace std;
    
    int main ()
    {
    	const int size = 4 ;
    	double adUmsatz[size];
    	double DurchUmsatz = 0;
    
    	for (int  i = 0 ; i < size ;++i )
    	{
    		cout<<" Geben Sie den Umsatz fuer das "<<i+1<<"te Quartal ein  : ";cin>>adUmsatz[i];
    	}
    
    	for (int i = 0 ; i < size ; i++ )
    	{
    		DurchUmsatz += adUmsatz[i];
    	}
    	cout<<DurchUmsatz<<endl;
    
    	cout<<" Durchschnittlicher Quartal Umsatz  : " <<DurchUmsatz / 4<<endl;
    
    	max_such(adUmsatz, size);
    	cin.get();
    	cin.get();
    	return 0 ;
    }
    
    // Funktion max_such
    double max_such(double adUmsatz[], int size)
    {
    	for (int i = 0 ; i < size -1 ; i++ )
    	{
    		int MaxPos;
    		MaxPos = i;
    		for (int j = i+1 ; j < size ; j++ )
    		{
    			if (adUmsatz[j] < adUmsatz[MaxPos])
    			{
    				MaxPos = j ;
    			}
    
    		}
    			if (MaxPos != i)
    			{
    				int Hilfsfeld = adUmsatz[MaxPos];
    				adUmsatz[MaxPos] = adUmsatz[i];
    				adUmsatz[i] = Hilfsfeld;
    			}
    	}
    
    	for ( int i = 0 ; i < size ; ++i )
    	{
    		cout<<adUmsatz[i]<<endl;
    	}
    
    }
    


  • Moritz Vogt schrieb:

    Und zwar soll ich per Funktionen den größten und kleinsten wert des Arrays herausfinden

    Dazu ist es weder notwendig noch sinnvoll, das Array zu sortieren.



  • Da ich auf diesen Gebiet ein absoluter Anfänger bin fiel mir nichts anders ein als es so zu machen 😃

    Ich kann also den Sortierrhythmus weg lassen find ich schonmal an sich nicht schlecht

    Über andere Möglichkeiten würde ich mich freuen



  • Moritz Vogt schrieb:

    Da ich auf diesen Gebiet ein absoluter Anfänger bin fiel mir nichts anders ein als es so zu machen 😃

    Ich kann also den Sortierrhythmus weg lassen find ich schonmal an sich nicht schlecht

    Über andere Möglichkeiten würde ich mich freuen

    Eine gute Möglichkeit ist, sich selber dabei zu beobachten.

    Wie würdest du das machen, wenn du nur Zettel, Stift und eine beliebige (unsortierte) Zahlenfolge hast?



  • Ehrlich gesagt würde ich es so machen wie in meinem Beispiel :

    Ich sortiere meine Zahlen von klein nach groß und danach möchte ich die erste Stelle des sortierten Arrays ausgeben .

    Mit Blatt und Papier würde ich die kleinste Zahl suchen und alle anderen durchstreichen 😃



  • Woher weißt du, das es die kleinst Zahl ist?



  • Ich Vergleich alle Zahlen miteinader und überschreibe immer die kleinste Zahl in eine Hilfsvariable ?

    Und sobald es keine Zahlen mehr gibt soll die Hilfsvariable ausgeben werden wo der letzte kleinste Wert drin gespeichert ist .

    Ist das die Lösung ?
    Wenn ja müsst ich nur noch wissen wie ich es übersetze 😃



  • double max_such(double adUmsatz[], int size)
    {
        double max = adUmsatz[0];
    
        for (int i = 1 ; i < size ; i++ )
          if(adUmsatz[i] > max)
            max = adUmsatz[i]; 
    
        return max;
    }
    


  • Moritz Vogt schrieb:

    Ich Vergleich alle Zahlen miteinader und überschreibe immer die kleinste Zahl in eine Hilfsvariable ?

    Du musst nicht alle Werte miteinander vergleichen, sondern nur den aus deiner Hilfsvariablen mit allen anderen.

    Moritz Vogt schrieb:

    Und sobald es keine Zahlen mehr gibt soll die Hilfsvariable ausgeben werden wo der letzte kleinste Wert drin gespeichert ist .

    Zurück geben.

    Moritz Vogt schrieb:

    Ist das die Lösung ?
    Wenn ja müsst ich nur noch wissen wie ich es übersetze 😃

    Komisch, in deiner Sortierroutine hast du das doch schon fast.

    PS. Du plenkst.


Anmelden zum Antworten