Zahlenmaximun aus einem Array suchen (???)



  • Ja gibt es. ">" (Größer als)

    Man benutzt ihn so:

    if( var1 > var2 ) cout << "var1 ist größer als var2" << endl;
    

    Verstehst du?



  • for schleife, den größten wert merken und wenn du beim schleifendurchlauf einen größeren findest den großten wert updaten ...



  • @MAG: so weit mit meinen kenntnissen bin ich schon 😉

    @darthdespotism: thx, habs mit diesem code hinbekommen:

    int i,z,m;
    
    	m=0;
    
    	for(i=0;i<=4;i++)
    	{
    		cout<<"Zahl eingeben"<<endl;
    		cin>>z;
    		if(z>m)
    		{
    			m=z;
    		};
    	};
    	cout<<"Maximum ist "<<m;
    getch();
    

    das ganze ist aber ohne arrays 😞



  • dann legst du halt ein array an, schreibst die werte die waehrend deiner for-schleife eingegeben werden da rein. wenn du aus der schleife heraus bist, durchsuchst du das array nach dem groessten wert und gibst den dann aus.

    Meep Meep



  • deine lösung ohne schleife ist allerdings besser. weiss nicht, warum da was von nem array in der aufgabe steht. wie du selbst festgestellt hast, ist das gar nicht nötig.



  • @Meep Meep:
    Ich komm net drauf.

    @thordk:
    Wieso? Wie soll das ohne Schleife gehen? Es soll ja 5 mal aufgefordert werden eine Zahl einzugeben.

    Kann mir jmd die Lösung posten bitte?



  • ohne arrays, nich ohne schleife. war nen vertipper 😃

    was für ne lösung? hast doch schon eine. oder meinst mit arrays dazu?

    - 5x einlesen, werte in nem array speichern (da es genau 5 int werte sein sollen, reicht nen int tollesIntArray[5]).
    - array einmal durchlaufen, um maximum zu finden.
    - maximum ausgeben.



  • Als Ausgangspunkt dein Code:

    int i,z,m;
        m=0;
    
        for(i=0;i<=4;i++)
        {
            cout<<"Zahl eingeben"<<endl;
            cin>>z;
            if(z>m)
            {
                m=z;
            };
        };
        cout<<"Maximum ist "<<m;
    getch();
    

    Mit Arrays:

    int i,z;
        int array[6];
        //Merken von Maximum in 0tem Arrayelement
        array[0] = 0;
    
        for(i=0;i<=4;i++)
        {
            cout<<"Zahl eingeben"<<endl;
            cin>>array[i+1];
            if(array[i+1]>array[0])
            {
                array[0] = array[i+1];
            };
        };
        cout<<"Maximum ist "<<array[0];
    getch();
    


  • würds schon auf zwei schleifen verteilen, sonst ist das array komplett überflüssig *G



  • #include <iostream>
    #include <vector>
    #include <algorithm>
    
    template<class T>
    const T max(const std::vector<T> &_v)
    {
    	T _act = *_v.begin();
    	for(std::vector<T>::const_iterator _it = _v.begin(); _it != _v.end(); ++_it)
    		if(_act < *_it)
    			_act = *_it;
    	return _act;
    }
    
    int main()
    {
    	std::vector<int> v;
    	int c;
    	do
    	{		
    		std::cin>>c;
    		v.push_back(c);
    	}while(v[v.size()-1] != 0);
    	std::cout<<"Maximum : "<<max<int>(v)<<std::endl;
    	return 0;
    }
    


  • Was gefällt dir denn an max_element nicht? 🙂



  • THX @zeigerzeiger!
    Wäre so darauf nicht gekommen 🙄
    👍

    thordk schrieb:

    würds schon auf zwei schleifen verteilen, sonst ist das array komplett überflüssig *G

    Funzt doch super (?)

    @c++-user:
    thx aber 85% deines Codes sind mir fremd ^^

    Braunstein schrieb:

    Was gefällt dir denn an max_element nicht? 🙂

    kenn ich nicht 😉



  • Kein Problem...

    trotzdem solltest du dir max_element aus der stl mal anschauen... Ist wohl eine der gängisten Lösungen in C++...

    Gruß
    zeiger



  • Hallo,

    Um C++-users Beispiel aufzunehmen und etwas zu verbessern.

    #include <iostream>
    #include <vector>
    #include <algorithm>
    
    int main()
    {
        std::vector<int> v;
        int c;
        do
        {       
            std::cin >> c;
            v.push_back(c);
        }while(v.back() != 0);
        std::cout << "Maximum : " << *std::max_element(v.begin(), v.end()) << std::endl;
        return 0;
    }
    


  • na ich glaube nicht das das die Aufgabe ist Funktionen wie max etc. ztu verwenden.

    Überlege dir einfach mal wie da das selbst machen würdest wenn du ohne Stift und Zettel aus 100 Zahlen die Größte herausfinden müsstest. Du würdest vorne anfangen, dir die erste zahl merken und dann zur 2ten gehn, ist die größer würdest du dir eben diese merken, etc. etc.



  • zumal wir im C++ Stoff noch nicht so weit fortgeschritten sind, dass ich damit was anfangen könnte, und in meinem Vorlesungsscript steht auch nix drüber. Naja vllt kommts ja nächstes Semester dran..................aber trotzdem thx 😉


Anmelden zum Antworten