Matrix in Vektoren umschreiben >>> Skalarprodukt



  • Hi
    ich versuche in meiner Matrix das Skalarprodukt von der k-ten Zeile und m-ten Spalte zu programmieren.
    Folgendes versteht ich nicht.
    Warum kann ich in meiner Schleife nicht die k-te oder m-te Spalte als festen Wert festlegen.

    Vielen Dank

    #include <stdio.h>
    #define Zeile 3
    #define Spalte 3
    
    double Matrix [Zeile][Spalte] = {
                                        {1,2,3},
                                        {4,5,6},
                                        {7,8,9}
                                    };
    
    int main (void)
    
    {    
        int    Index;
        double Produkt,Ergebnis;
        double Spalte_Wert=0.0,Zeile_Wert=0.0;
        double *Vektor_1,*Vektor_2;
    
    //Eingabe Zeile und Spalte
    
        printf("Eingabe der m-ten Spalte der Matrix: ");
        scanf("%lf",&Spalte_Wert);
    
        printf("Eingabe der k-ten Zeile der Matrix: ");
        scanf("%lf",&Zeile_Wert);
    
    //Schleife zur Berechnung des Skalarproduktes
    
        Ergebnis=0.0;
        for(Index=0; Index<Spalte; Index++)
        {
            Vektor_1=&Matrix[Zeile_Wert][Index];       //HIER IST DER FEHLER (wenn ich Zeile_Wert da rein schreibe obwohl ich doch oben die 
                                                       //abfrage habe und Zeile_Wert einen festen Wert hat)
    
            Vektor_2=&Matrix[Index][Spalte_Wert];      //HIER IST DER FEHLER (wenn ich Spalte_Wert da rein schreibe)
    
            Produkt=Vektor_1[Index]*Vektor_2[Index];
    
            Ergebnis+=Produkt;
        }
    
    // Ausgabe des Gesamtwertes des Skalarproduktes
    
        printf("Das Skalarprodukt der Vektoren beträgt: %lf\n",Ergebnis);
    
        return 0;
    }
    


  • Was sagt denn de Compiler zu den Fehlerhaften Zeilen?

    Wie kommst du auf das & in den Zeilen?

    Du kannst zwar einem Pointer (die Adresse von) einer Zeile zuweisen, bei einer Spalte klappt das aber nicht.
    Das liegt an der Anordung der Elemente vom Array im Speicher.



  • DirkB schrieb:

    Was sagt denn de Compiler zu den Fehlerhaften Zeilen?

    Compiler sagt: array subscript is not an integer

    DirkB schrieb:

    Wie kommst du auf das & in den Zeilen?

    Das fragst du jetzt nicht ernsthaft oder? Ich dachte schon ich weiss Null von C 😮



  • tante123 schrieb:

    Das fragst du jetzt nicht ernsthaft oder?

    Sorry, ich hatte Schwierigkeiten mit dem Browser. Da habe ich nicht gründlich genug gelesen.

    tante123 schrieb:

    Compiler sagt: array subscript is not an integer

    Das sagt doch schon alles.
    Ein Arrayindex muss ein Ganzzahltyp sein.

    Selbst wenn es in C Spaltenvektoren geben würde, wäre dein Algorithmus falsch.

    tante123 schrieb:

    Ich dachte schon ich weiss Null von C 😮

    Ich weiß, dass ich nichts weiß.
    Wieviel weißt du?



  • Ne überhaupt nicht viel aber das eine Semester bring ich schon noch rum 🙂
    Danke hab den Fehler gefunden.

    BETRAG CLOSED


Anmelden zum Antworten