Zufall Zahlen sorteiern



  • Mein bisheriger code
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    using namespace std;

    int main(int argc, char *argv[])
    {
    int a [9];

    srand(time(NULL));

    a[9]= rand() % 99+1;

    return 0;
    }

    nun möchte ich die 10 Zufall Zahlen geordnet ausgeben ... Wie mache ich das ?



  • Welche 10? Du hast nur eine! Ansonsten Stichworte zum nachlesen: for-Schleife, qsort.



  • Du hast ein Array mit Platz für 9 int. In deinem gezeigten Code füllst du das 10te.

    Ansonsten:
    Hausaufgaben musst du selber lösen. Das passende Stichwort zum Lösungsansatz steht im Titel.



  • #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
      int a [9];
    
      srand(time(NULL));
    
      a[9]= rand() % 99+1;  // hier greifst du über das int-array hinaus
                            // du hast oben Platz für 9 Elemente reserviert
                            // und die Indezes gehen von 0 bis 8 und eben nicht
                            // bis Index 9!!
    
                            // Ausserdem würdest du mit dieser Anweisung auch nur
                            // eine Zufallszahl in dein Array füllen und nicht
                            // gleich 9 Zahlen!
      return 0;
    }
    


  • SG1 schrieb:

    qsort.

    Sind wir hier im C-Forum?



  • Oh, in der Tat.



  • nein das sind keine hausaufgaben....ich möchte nur 10 zufällige zahlen haben und die sortiert ausgeben...dafür brauche ich Hilfe...danke



  • Kein Problem:
    führe in einer bash folgendes aus

    shuf -i 1-100 -n 10 | sort -g
    




  • #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int a [10];
    
        srand(time(NULL));
    
        for(int i=0; i<10;i++) a[i]= rand() % 99+1;
    
        std::vector<int> myvector (myints, myints+10); 
    
        std::sort(myvector.begin(), myvector.end());
    
        std::cout << "myvector contains:";
        for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)
          std::cout << ' ' << *it;
        std::cout << '\n';
    
    return 0;
    }
    

    Fast 1 zu 1 aus der C++-Referenz übernommen.
    Ernsthaft, ne google Suche nach c++ sort oder c++ array sortieren hätte dir bestimmt geholfen.
    Und du solltest mal den Code als Wörter durchdenken, dann hättest du das mit dem Array auch gemerkt.
    Ist nur ein Tipp, damit kannst du in Zukunft Fehler einfacher finden.
    Der Weg, wenn man ein Problem hat: Problem -> Code durchdenken -> Google fragen -> hier fragen 🙂



  • #include <vector>
    #include <random>
    #include <iostream>
    #include <algorithm>
    #include <iterator>
    #include <functional>
    #include <limits>
    
    int main()
    {
    	std::random_device rd;
    	std::mt19937 mt(rd());
    	std::uniform_int_distribution<int> dis(
    					std::numeric_limits<int>::min(),
    					std::numeric_limits<int>::max());
    
    	std::vector<int> vec(10);
    	std::generate(std::begin(vec), std::end(vec), std::bind(dis, mt));
    	std::sort(std::begin(vec), std::end(vec));
    
    	std::copy(std::cbegin(vec), std::cend(vec), std::ostream_iterator<int>(std::cout, ", "));
    }
    


  • Cherup schrieb:

    Fast 1 zu 1 aus der C++-Referenz übernommen.
    Ernsthaft, ne google Suche nach c++ sort oder c++ array sortieren hätte dir bestimmt geholfen.

    Wieso kaust du es ihm dann vor?
    Das ist kontraproduktiv.
    Hilf ihm lieder die Beispiele selbst zu finden.
    Das ist doppelt gut weil es Leuten die wirklich was lernen wollen mehr hilft als fertigen Code hinzuschreiben, und gleichzeitig Leute die bloss fertige Lösungen abstauben wollen "demotiviert".
    Beidest ist mMn. wünschenswert.



  • Hast recht, werds nie wieder tun, versprochen 😃


Log in to reply