Matrizen



  • Sorry, bin mir nicht ganz sicher ob ich hier richtig bin. Wollte nur wissen, wie ich eine Matrix beliebiger Größe und deren Dterminante programmieren kann. Scheint mit einfachen Feldern nicht zu funktionieren.
    Danke!



  • Warum sollte das nicht funktionieren? Was hast du denn versucht?



  • int main(){
    int n, m;
    double xx[n][m];
    printf("n: ");
    scanf("%i\n",&n);
    printf("m: ");
    scanf("%i\n",&m);
    

    Ich habe einfach versucht das Feld mit unbekannten zu deklarieren, die erst danach abgefragt werden, um nicht vorher die Matrixgröße festlegen zu müssen, damit ich nicht für jede Matrix, die ich verwenden will ein extra Programm schreiben zu müssen und bei der Ausführung erst zu bestimmen welche Matrix verwendet werden soll. Leider hat man im Seminar versäumt uns mitzuteilen, wie sowas wirklich funktioniert 😉



  • So auf jeden Fall nicht - VLAs gibt es nur unter C99, unter normalen Umständen mußt du die Array-Größe bereits zur Compilezeit festlegen (und selbst bei VLAs mußt du erst die Größe abfragen und danach das Array anlegen ;)). Mit C++-Mitteln bleibt dir noch die Alternative, geschachtelte vector<>en zu verwenden:

    vector<vector<double> > xx;
    int n,m;
    cout<<"bitte Größe angeben:";
    cin>>n>>m;
    xx.resize(n,vector<double>(m));
    

    (Alternative Ansätze findest du in der C++ FAQ unter "dynamische mehrdimensionale Arrays")


Anmelden zum Antworten