Zahlenmaximun aus einem Array suchen (???)



  • 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