Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [c++] prodotto matrici

  1. #1

    [c++] prodotto matrici

    devo scrivere una funzione in c++ che calcoli il prodotto di due matrici A e B, di questo tipo:
    codice:
    void mat_mat_prod(long A[N][N], long B[N][N], long C[N][N])
    dove N secondo l'esercizio "e' definita come costante all'interno del codice" (e gia' inizio a non capire bene cosa vogliano...)
    io ho provato a scrivere questo programma (con una main per provare la funzione), ma dato che sono alle prime armi con c++ probabilmente ci sono degli errori grossolani, oltretutto la tale funzione funziona solo se N=3...in particolare non capisco bene come devo passare gli array multidimensionali alla funzione mat_mat_prod.

    codice:
    #include<iostream>
    using namespace std;
    
    void mat_mat_prod(long,long,long);
    
    const int N = 3;
    
    int main() {
    long A[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
    long B[3][3] = {{1,0,0},{0,1,0},{0,0,1}};
    long C[3][3] = {{0,0,0},{0,0,0},{0,0,0}};
    mat_mat_prod(A[3][3],B[3][3],C[3][3]);
    return 0;
    }
    
    void mat_mat_prod(long A[3][3],long B[3][3],long C[3][3]) {
    //prodotto tra due matrici questa parte dovrebbe essere corretta
    for (int i=0; i<N; i++) {
            for (int j=0; j<N; j++) {
                    for (int k=0; k<N; k++) {
                            C[i][j] += A[i][k] * B[k][j];
                    }
            }
    }
    }
    l'errore che mi restituisce il compilatore e' questo:
    codice:
    /tmp/cce7BE4P.o(.text+0x5d): In function `main':
    : undefined reference to `mat_mat_prod(long, long, long)'
    collect2: ld returned 1 exit status
    cosa significa? qualcuno mi potrebbe aiutare? grazie in anticipo!
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  2. #2
    uppettino...
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  3. #3
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    prova questo:

    codice:
    #include<iostream>
    using namespace std;
    
    const int N = 3;
    
    void mat_mat_prod(long A[N][N], long B[N][N],long C[N][N]);
    
    int main() {
    long A[N][N] = {{1,2,3},{4,5,6},{7,8,9}};
    long B[N][N] = {{1,4,7},{2,1,6},{1,5,1}};
    long C[N][N] = {{0,0,0},{0,0,0},{0,0,0}};
    mat_mat_prod(A, B, C);
    return 0;
    }
    
    void mat_mat_prod(long A[N][N], long B[N][N],long C[N][N]) {
    //prodotto tra due matrici questa parte dovrebbe essere corretta
    for (int i=0; i<N; i++) {
            for (int j=0; j<N; j++) {
                    for (int k=0; k<N; k++) {
                            C[i][j] += A[i][k] * B[k][j];
    			cout << C[i][j] << endl;
                    }
            }
    }
    }
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.