Felder Vektor und Matrize



  • Hallo 🙂
    Habe erst vor kurzen angefangen mit C++. Und ich komme bei dieser Aufgabe nicht weiter. Ein Vektor soll mit einer Matrize multipliziert werden. Würde mich sehr über eure Hilfe freuen.
    Und ich hab schon wie verrückt gesucht, aber ich finde nichts dazu, wie man es einrücken kann, damit es aussieht wie eine Matrize. Bei mir ist alles untereinander.

    void main()
    {
    double *m=NULL;
    int *v=NULL;
    double *mn= NULL;
    int n,z,s;

    printf("Gebe Anzahl Vektorzeilen:");
    scanf_s("%d", &n);
    printf("Gebe Anzahl Matrizenzeilen:");
    scanf_s("%d", &z);
    printf("Gebe Anzahl Matrizenspalten:");
    scanf_s("%d", &s);
    v = (int )malloc( n sizeof(int));
    m = (double *)malloc(z*s * sizeof(double));
    mn = (double *)malloc(z*s * sizeof(double));

    einlesenV(v,n);
    einlesenM(m, z, s);

    mult(v, m, n, z, s, mn);

    free(v);
    free(m);
    free(mn);

    }

    void mult(int *v, double *m, int n, int z, int s, double *mn)
    {
    int i, j;

    for (i = 0; i < z; i++)
    {
    for (j = 0; j < s; j++)
    {
    (mn + is + j) = 0;

    *(mn+i*s+j)= *(mn + i*s + j)+(*(m + i*s + j) * v[i]);

    printf("%lf\n",(mn + is + j));
    }
    }
    }



  • Das ist C => falsches Forum



  • Schreibe nur nach jeder Zeile einen Zeilenumbruch '\n' (also nach der inneren for-Schleife).

    PS: Und verwende Code-Tags hier im Forum

    [code="c"]...[ /code]
    

    (ohne das Leerzeichen)



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum C (alle ISO-Standards) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Vorschlag:

    void mult(int *v, double *m, int n, int z, int s, double *mn) 
    { 
    	int i, j; 
    
    	for (i = 0; i < z; i++) 
    	{ 
    	     for (j = 0; j < s; j++) 
    	     { 
    	          *(mn + i*s + j) = 0; 
    
    	          *(mn+i*s+j)= *(mn + i*s + j)+(*(m + i*s + j) * v[i]); 
    
    	          printf("%lf",*(mn + i*s + j)); // kein "\n" !!!  
    	     }
             printf("\n"); // <-- Hier die Zeile umbrechen mit printf("\n");
    	} 
    }
    

    Wenn Du die Matrize spiegeln willst, selbes Schema, aber in der inneren Schleife die Spalten / Werte auf der x-Achse behandeln, in der äußeren die Zeilen / Werte auf der Y-Achse behandeln, dann klappt das, dass man in der äußeren Schleife den Zeilenumbruch mit printf("\n") hinbekommt.



  • Vielen Dank für die Hilfe 🙂


Anmelden zum Antworten