Somme de matrice

fabienlele -  
 fabienlele -
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];
}
A voir également:

2 réponses

fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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
fabienlele
 
Merci à toi fiddy, ça marche maintenant.
0