Somme de matrice

Bonjour,

Je cherche à somme des matrices avec le petit programme que j'ai fait ci dessous (le matrice résultante est stockée dans la 1ere matrice). Le problème c'est que quand je lance l'exe c'est la matrice nulle qui apparaît !
Les matrices sont mat1 ={ {1,2,3},{4,5,6},{7,8,9} } et mat2={ {4,5,6},{1,2,3},{7,8,9} }

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define N 3

void somme(double A[N][N],double B[N][N],int m);
void afficher(double A[N][N] ,int m);

int main()
{
int i,j,k,n=3,selection;
double mat1[N][N]; double mat2[N][N];

//On définit mat1//
for (j=0;j<3;j++)
{
for (i=0;i<3;i++)
{
mat1[i][j]=(i+1)+3*j;
}
}

//On définit mat2//
for (i=0;i<3;i++)
{
mat2[i][0]=mat1[i][1];
}
for (i=0;i<3;i++)
{
mat2[i][1]=mat1[i][0];
}
for (i=0;i<3;i++)
{
mat2[i][2]=mat1[i][2];
}

printf("Voici la matrice 1 :\n\n");afficher(mat1,n);printf("Voici la matrice 2 :\n\n");afficher(mat2,n);

somme(mat1,mat2,n);printf("mat1+mat2 = \n");

afficher(mat1,n);
}

void afficher(double A[N][N],int m)
{
int j,k;
for (j=0;j<m;j++)
{
for (k=0;k<m;k++) printf("%d ",A[j][k]);
printf("\n");
}
printf("\n\n");
}

void somme(double A[][N],double B[][N],int m)
{
int i,j;
for (i=0;i<m;i++)
for (j=0;j<m;j++)
A[i][j]+=B[i][j];
}
Configuration: Windows XP
Firefox 2.0.0.20

2 réponses

  1. Contributeur
    Salut,
    Ce n'est pas étonnant, il y a une petite erreur dans ta fonction affichage.
    printf("%lf ",A[j][k]); (tu avais mis %d).
    Ca devrait marcher maintenant.
    Cdlt
    0
    1. Merci à toi fiddy, ça marche maintenant.
      0