Array füllen



  • also wenn ich die bibliothek alles einbinde und anstatt char dann halt string schreibe stürzt das programm ab...



  • for(int n=0;n<10;n++)
    


  • nein dadran liegts nicht, wenn ich irgendein Wert in den String-Array eingebe, hängt sich das programm beim ausgeben denke ich mal auf....



  • Corax schrieb:

    nein dadran liegts nicht, wenn ich irgendein Wert in den String-Array eingebe, hängt sich das programm beim ausgeben denke ich mal auf....

    Dann zeig mal den Code her, wie er jetzt ist.

    Ansonsten kannst du dich auch mal mit dem Debugger bemühen. Der kann sehr viel helfen..



  • #include <iostream>
    #include <string.h>
    #include <konsole.h>
    
    void array_fuellen(string*);
    
    int main()
    {
        string s[10];
    
        array_fuellen(s);
    
        getch();
        return 0;
    }
    
    void array_fuellen(string* s)
    {
        for(int n=0;n<=9;n++)
        {
            cin>>*s;
            cout<<"\ns["<<n<<"] = "<<*s<<endl;
            *s++;
        }
    }
    


  • #include <string>
    


  • gut das probiere ich gleich aus...
    hier habe ich nun ein anderes problem...
    ich möchte ein array auswerten...das programm funktioniert, also liefert die ergebnisse allerdings bleibt das programm irgendwie hängen, und ich weiß nicht wodran es liegen könnte

    #include <iostream>
    #include <konsole.h>
    
    void einlesen(double*);
    void auslesen(double*);
    double kleinster(double*);
    double groesster(double*);
    double gesamtwert(double*);
    
    int main()
    {
        double array[10];
    
        einlesen(array);
        auslesen(array);
        cout<<"Kleinster Wert = "<<kleinster(array)<<endl;
        cout<<"Groesster Wert = "<<groesster(array)<<endl;
        cout<<"Gesamtwert = "<<gesamtwert(array);
    
        getch();
        return 0;
    }
    
    void einlesen(double* array)
    {
        for(int n=0;n<=10;n++){
            cin>>*array;
            array++;
        }
    }
    
    void auslesen(double* array)
    {
        for(int n=0;n<=10;n++){
            cout<<"Wert "<<n<<" = "<<*array<<endl;
            array++;
        }
    }
    
    double kleinster(double* array)
    {
        double min=array[0];
    
        for(int n=0;n<=10;n++){
            if(*array<=min) min=*array;
            *array++;;
        }
        return min;
    }
    
    double groesster(double* array)
    {
        double max=array[0];
    
        for(int n=0;n<=10;n++){
            if(*array>=max) max=*array;
            *array++;
        }
        return max;
    }
    
    double gesamtwert(double* array)
    {
        double erg=0;
        for(int n=0;n<=10;n++){
                erg=erg+*array;
                *array++;
        }
        return erg;
    }
    


  • Dann geh da halt mal mit dem Debugger durch. 🙄



  • ersetz mal in kleinster, groesster und gesamtwert "*array++" durch "array++"



  • und außerdem mußt du in den for-Schleifen die Bedingung "n<=10" durch "n<10" ersetzen.



  • hmm komisch 😃 mit dev-c++ funktioneirt das programm...muss ich das jetzt verstehen :D?^^



  • Wenn du über die Arraygrenzen hinweg zugreifst, muss das nicht zwingend in einem Programmabsturz enden. Das Verhalten ist undefiniert, es kann also relativ viel passieren. 😉


Anmelden zum Antworten