Fonction somme et produit d'un tableau 2D

Fermé
emilie790 Messages postés 7 Date d'inscription vendredi 15 janvier 2016 Statut Membre Dernière intervention 29 mars 2018 - 15 janv. 2016 à 13:07
SypayV Messages postés 6583 Date d'inscription vendredi 28 décembre 2007 Statut Contributeur Dernière intervention 19 février 2023 - 16 janv. 2016 à 12:03
Bonjour à tous.

Voici mon programme :
#include <iostream>
#include <conio.h>
 
using namespace std;
 
void initialiser(int **C, int taille)
{
    for(int i=0; i<taille; i++)
    {
        for(int j=0; j<taille; j++)
        {
            cout << "Veuillez remplire la matrice 1 svp";
            cout << "[" << i << "][" << j << "] = ";
            cin >> C[i][j];
            cout << endl;
        }
    }
}
 
void somme(int **C, int **D, int taille, int **Som)
{
    for(int i=0; i<taille; i++)
    {
        for(int j=0; i<taille; j++)
        {
            Som[i][j] = C[i][j] + D[i][j];
        }
    }
}
 
void produit(int **C, int **D, int taille, int **Prod)
{
    for(int i=0; i<taille; i++)
    {
        for(int j=0; j<taille; j++)
        {
            Prod[i][j] = Prod[i][j] + C[i][j] * D[i][j];
        }
    }
}
 
int main()
{
    //TRAVAILLE EVEC DES MATRICES CARRES
    int const N = 100;
    int **A, **B;
    int i = 0;
    int j = 0;
    A = new int *[N];
    for(i=0; i<N; i++)
    {
        A[i] = new int [N];
    }
    i = 0;
    B = new int *[N];
    for(i=0; i<N; i++)
    {
        B[i] = new int [N];
    }
    int taille;
 
    cout << "Veuillez saisir la taille des deux matrices" << endl;
    cin >> taille;
    cout << endl;
    initialiser(A, taille);
    cout << "matrice 2" << endl;
    initialiser(B, taille);
    //AFFICHAGE DE LA MATRICE GENRE SUPER COOL
    int **Som, **Prod;
    somme(A, B, taille, Som);
    //AFFICHAGE DE LA MATRICE Somi
    i = 0;
    j = 0;
    for(i=0; i<taille; i++)
    {
        for(j=0; j<taille; j++)
        {
            cout << "Som[" << i << "][" << j << "] = ";
            cin >> Som[i][j];
            cout << endl;
        }
    }
    produit(A, B, taille, Prod);
    //AFFICHAGE DE LA MATRICE Prod
    i = 0;
    j = 0;
    for(i=0; i<taille; i++)
    {
        for(j=0; j<taille; j++)
        {
            cout << "Prod[" << i << "][" << j << "] = ";
            cin >> Prod[i][j];
            cout << endl;
        }
    }
    i = 0;
    j = 0;
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
        {
            delete [] A[i];
        }
    }
    delete A;
    A = nullptr;
    i = 0;
    j = 0;
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++)
        {
            delete [] B[i];
        }
    }
    delete B;
    B = nullptr;
    return 0;
}


Je pense que le problème se situe au niveau des fonctions somme et produit mais je ne le vois pas :(

Merci d'avance :)

PS : s'il vous plait ne me demandez pas d'utiliser "std::vector" car c'est un travail à rendre à mon professeur qui nous a demandé de faire comme tel donc....
A voir également:

1 réponse

SypayV Messages postés 6583 Date d'inscription vendredi 28 décembre 2007 Statut Contributeur Dernière intervention 19 février 2023 449
16 janv. 2016 à 12:03
Bonjour,

C'est normal que vous ayez un cin dans les 2 derniers affichages ?

Et aussi votre variable N ne sert à rien. Vous devriez allouer directement en utilisant la variable taille, et donc demander la taille avant d'allouer.

J'ai aussi un doute sur le produit.
https://fr.wikipedia.org/wiki/Produit_matriciel#Exemples
0