Länge eines Arrays bestimmen



  • Was habe ich falsch gemacht?

    int Arraybestimmen(){
        int Datensätze;
        int* Pointer = &Datensätze;
        int Daten;
        int i;
        cout << "Wie viele Datensätze möchtest du Sortieren?" << endl;
        cin >> Datensätze;
        while(i != Datensätze){
            cout << "Was solle auf der:" << i << " gespeichert werden?" <<endl;
            cin >> Daten;
            int Sortieren[Pointer] = Daten;
            i++;
        }
    }
    


  • Gibts es etwas zu gewinnen?



  • @MadDevil sagte in Länge eines Arrays bestimmen:

    Was habt ich falsch gemacht?

    Diverse Dinge. Fängt gleich mit dem Rechtschreibfehler (habe statt habt) in der Frage an - und nicht nur das, sag uns doch, was du denkst, wo du Probleme hast!

    Im Programm: zu viele Variablen, die nicht gleich mit einem Wert initialisiert werden (generelle Bemerkung).

    Konkrete Fehler (mindestens):

    • es fehlt #include <iostream> und using namespace std; (oder statt using... lieber std::... schreiben)
    • i ist uninitialisiert
    • es ist unklar, wozu die Variable "Pointer" gut sein soll. Deine Zeile 11 int Sortieren[Pointer] = Daten; ist völlig unklar. Erstens scheinst du innerhalb der Schleife eine Variable deklarieren zu wollen (das Array muss vor der Schleife da sein), eine int-Pointer-Variable kann nicht als Index verwendet werden.
    • in C++ solltest du für variabel lange Arrays std::vector nutzen
    • Rechtschreibfehler in cout << "Wie viele Datensätze möchtest du Sortieren?" << endl; (sortieren ist kein Nomen).
    • ...und in dem Zusammenhang: es gibt gar keine Sortierfunktion in deinem Programm
    • die Funktion hat einen int-Returntyp, aber du hast kein return-Statement in der Funktion

    Mach irgendwas in dieser Richtung (ungetestet hingetippt)

    #include <iostream>
    #include <vector>
    using namespace std;
    
    ...
    
        cout << "Wie viele Datensätze möchtest du sortieren?" << endl;
        cin >> Datensätze;
        std::vector<int> numbers(Datensätze);
        for (size_t i = 0; i < numbers.size(); ++i) {
            cout << "Was soll auf der:" << i << " gespeichert werden?" <<endl;
            cin >> numbers[i];
        }
    
    ...
    
    

    Ich würde auch keine Umlaute in Variablennamen verwenden.


  • Mod

    Dieses Mal lösch bitte nicht deine Frage, wenn du deine Antwort hast. Dann haben später auch andere etwas davon.


Log in to reply