Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C++] prodotto tra matrici

    qualcuno mi sa dire dove è l'errore?

    #include <iostream>
    using namespace std;

    int main()
    {
    int a[3][4]={{2,4,6,7},
    {1,2,3,4},
    {8,9,1,2}};

    int b[4][2]={{1,2},
    {3,4},
    {5,6},
    {7,8}};

    int c[3][2];


    for(int j=0;j<2;j++)
    {
    for(int i=0;i<3;i++)
    {
    for(int p=0;p<4;p++)
    {
    c[i][j]+=(a[i][p]*b[p][j]);
    }
    }
    }

    cout<<"il nuovo vettore è: [";
    for(int i=0;i<3;i++)
    {
    for(int j=0;j<2;j++)
    {
    cout<<" ";
    }
    }
    cout<<"]";
    system("pause");

    }


    grazie!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    che errore ricevi? Non conosco c++... ma quando vai a stampare c, dov'è il valore di ciascun elemento (utlimo ciclo for annidato.) ?

    Saluti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    ho fatto la prova d stamapre solo il prodotto..e quello viene bene..il problema è quando metto ogni prodotto nella matrice 'C'..stampa numeri inesistenti..credo ke il problema sia negli indici di 'C'(i,j) ma nn so come risolverlo..

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    inizializza gli elementi della matrice c a zero prima di iniziare a calcolare il prodotto.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    grazie!!
    ora xo mi son accorto ke le posizioni dei valori di 'C' sn sbagliate in quanto i due indici I-J assumono sequenzialmente questi valori(00,10,20,01,11,21) mentre dovrebbero assumere questi valori (00,01,10,11,20,21) x riempire correttamente 'C'..

  6. #6
    sapete come posso correggere questa cosa?

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    gira i for esterni, quelli con indici i e j

    Da:
    codice:
    for(int j=0;j<2;j++) { 
      for(int i=0;i<3;i++) { 
        for(int p=0;p<4;p++) { 
          c[i][j]+=(a[i][p]*b[p][j]); 
        } 
      } 
    }
    a

    codice:
    for(int i=0;i<3;i++) {
      for(int j=0;j<2;j++) {    
        for(int p=0;p<4;p++) { 
          c[i][j]+=(a[i][p]*b[p][j]); 
        } 
      } 
    }
    Credo...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    facendo csi m sballa anke il prodotto..

  9. #9
    a parte il fatto che si fa **sempre**

    for (i ...)
    for (j ...)
    matrice[i][j]

    perche' se inverti i for non ti immagini quanto rallenti l'esecuzione.
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

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 © 2024 vBulletin Solutions, Inc. All rights reserved.