Hilfe! wie sortiere ich die größte zahl aus einem array?



  • hi!
    ich hatte heute test und habe mich grün und blau geärgert!
    trotz intensiven lernens sind aufgabenstellungen gekommen die ich nicht konnte.
    1: lottozahlen ausgabe 7 zahlen - mit random wie ist das machbar ohne das eine
    doppelt kommt?
    2:wie sortiere ich - wiederrum aus einem array - die höchste eingegebene zahl?
    wir hatten erst grundlagen!
    ich werde auch aus den ausgeborgten fachbüchern nicht schlau.
    vielleicht kann mir jemand helfen.
    die freude am programmieren lass ich mir trotzdem nicht verderben.
    🙂



  • zu1: Du erstellst in einer Schleife die Lottozahl solange, bis eine Zahl kommt, die du noch nicht hast. Und das dann fuer jede der Zahlen. Die schon erstellten, kannst du ja dann in Variablen speichern und die dann abfragen.
    MfG Aoeke



  • Wenn du nur die größte Zahl haben willst und den Index des Arrays ist es eigentlich ganz simpel. Du nimmst dir die erste Zahl aus dem Array und merkst sie dir in einer Variablen. Dann vergleichst du die gemerkte Zahl mit der nächsten im Array. Wenn die nächste Zahl größer ist als die gemerkte, merke dir eine neue, wenn nicht überprüfe die nächste Zahl.

    a= Zahl aus Array;
    
     for(i=0; i<Array->Count, i++)
     {
       if(a<< Array->Zahl[i]
         a=Array->Zahl;
     }
    

    Gut die Syntax dürfte so nicht stimmen. Aber ich hoffe das Prinzip ist klar geworden.

    FGGF

    wenn nicht frag nochmal



  • Hi

    Wenn du die Zahlen sortieren willst, kannst du auch einen Sortieralgorithmus basteln (Bubblesort oder so). Dann bekommst du die Zahlen, je nach dem wie du das ganze progst, von Klein nach Groß oder von Groß nach Klein.

    kannst ja mal danach google 🙂

    Edit: Das ist wohl eher was für das C++ Forum 🤡



  • Hab mal schnell beides zusammengebaut.
    Wünsche mir auch solche Aufgaben...

    #include <iostream.h>
    
    int main()
    {
       int zufall[7],i=0;
       srand((unsigned)time(NULL));
       while(i<7)
       {
          zufall[i]=1+rand()%(49-1+1);
          if(!count(zufall,zufall+i,zufall[i]))
          {
             cout << zufall[i]<< " ";
             i++;
          }
       }
       int groesste=zufall[0];
       for(i=1;i<7;i++)
       {
          if(zufall[i]>groesste) groesste=zufall[i];
       }
       cout << endl << groesste;
       return 0;
    }
    

Anmelden zum Antworten