Somme de matrice

Fermé
fabienlele - 26 déc. 2008 à 17:07
 fabienlele - 26 déc. 2008 à 18:02
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 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
26 déc. 2008 à 17:21
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
Merci à toi fiddy, ça marche maintenant.
0