Matrice (multiplication+addition+soustraction)

Contenu du snippet

#include <stdio.h>
#include <stdlib.h>
int n,m,a,b,i,j,z,k;

void affichage()
{
printf("vous allez faire une addition de deux matrices qui ont le meme format\n\n");
printf("entrez le nombre de ligne de la matrice m1 \t");
scanf("%d",&n);
printf("\n");
printf("entrez le nombre de colonne de la matrice m1 \t");
scanf("%d",&m);
printf("\n");


printf("entrez le nombre de ligne de la matrice m2 \t");
scanf("%d",&a);
printf("\n");
printf("entrez le nombre de colonne de la matrice m2 \t");
scanf("%d",&b);
printf("\n");
}

void addition()

{
// on vérifie si les deux matrices ont le même format //
if ((n==a)&&(m==b))
{
printf("les deux matrices ont le meme format\n\n");
printf("entrez les elements de la cette matrice m1 \n\n");
int m1[n][m];
int m2[a][b];
int m3[n][m];
//entrez les valeurs de m1
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&m1[i][j]);
}
}
//affichage de m1
printf("voici m1:\n\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("\t|%d|",m1[i][j]);
}
printf("\t\n");
}

printf("\n\n");
//entrez les valeurs de m2
printf("entrez les elements de la cette matrice m2 \n\n");
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
scanf("%d",&m2[i][j]);
}
}
//affichage de m2
printf("voici m2:\n\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("\t|%d|",m2[i][j]);
}
printf("\t\n");
}
//affichage de m2+m1
printf("\n");
printf("le resultat de l'addition m1+m2 \n\n");

for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
m3[i][j]= m1[i][j]+ m2[i][j];
printf("\t|%d|",m3[i][j]);
}
printf("\n");
}

}
else
{
printf("vous pouvez pas faire l'addition car les deux matrices n'ont pas le meme format \n\n");
}

}

void soustraction()
{
// on vérifie si les deux matrices ont le même format //
if ((n==a)&&(m==b))
{
printf("les deux matrices ont le meme format\n\n");
printf("entrez les elements de la cette matrice m1 \n\n");
int m1[n][m];
int m2[a][b];
int m3[n][m];
//entrez les valeurs de m1
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&m1[i][j]);
}
}
//affichage de m1
printf("voici m1:\n\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("\t|%d|",m1[i][j]);
}
printf("\t\n");
}

printf("\n\n");
//entrez les valeurs de m2
printf("entrez les elements de la cette matrice m2 \n\n");
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
scanf("%d",&m2[i][j]);
}
}
//affichage de m2
printf("voici m2:\n\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("\t|%d|",m2[i][j]);
}
printf("\t\n");
}
//affichage de m2+m1
printf("\n");
printf("le resultat de la soustraction m1-m2 \n\n");

for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
m3[i][j]= m1[i][j]- m2[i][j];
printf("\t|%d|",m3[i][j]);
}
printf("\n");
}

}
else
{
printf("vous pouvez pas faire la soustraction car les deux matrices n'ont pas le meme format \n\n");
}
{
}
}

void multiplication()
{
// on vérifie si les deux matrices ont le même format //
if (m==a)
{
printf("les deux matrices ont le meme format\n\n");
printf("entrez les elements de la cette matrice m1 \n\n");
int m1[n][m];
int m2[a][b];
int m3[m][b];
//entrez les valeurs de m1
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&m1[i][j]);
}
}
//affichage de m1
printf("voici m1:\n\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("\t|%d|",m1[i][j]);
}
printf("\t\n");
}

printf("\n\n");
//entrez les valeurs de m2
printf("entrez les elements de la cette matrice m2 \n\n");
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
scanf("%d",&m2[i][j]);
}
}
//affichage de m2
printf("voici m2:\n\n");
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
printf("\t|%d|",m2[i][j]);
}
printf("\t\n");
}
//calcul de m2*m1
printf("\n");
printf("le resultat de la multiplication m1*m2 \n\n");
z=0;
for(i=0;i<n;i++)//n c'est nombre de ligne de m3
{
for(j=0;j<b;j++)//b c'esr nombre de colonne de m3
{

for(k=0;k<m;k++)//m c'est le nombre de colonne de m1

{

z=(m1[i][k]*m2[k][j])+z;

}
m3[i][j]=z;
z=0;
}

}
//affichage de m2*m1
for(i=0;i<n;i++)
{
for(j=0;j<b;j++)
{
printf("\t|%d|",m3[i][j]);
}
printf("\n");
}
}
else
{
printf("la multiplication est impossible car le nbre de colonne de m1 <> nbre de ligne m2 \n\n");
}

}

int main()
{
int menu;

printf("\t************************************************\n");
printf("\t* *\n") ;
printf("\t* voici votre menu *\n");
printf("\t* *\n") ;
printf("\t************************************************\n");
printf("\n\n");
printf("\t1: tapez 1 pour faire l'addition de deux matrice \n\n");
printf("\t2: tapez 2 pour faire la soustraction de deux matrice \n\n");
printf("\t3: tapez 3 pour faire la multiplication de deux matrice \n\n");
scanf("%d",&menu);
printf("\n\n");

switch (menu)
{
case 1:
{
affichage();
addition();
break;
}
case 2:
{
affichage();
soustraction();
break;
}
case 3:
{
affichage();
multiplication();
break;
}
}


system("PAUSE");
return 0;

}

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>
int n,m,a,b,i,j,z,k;

void affichage()
{
          printf("vous allez faire une addition de deux matrices qui ont le meme format\n\n");
          printf("entrez le nombre de ligne de la matrice m1 \t");
          scanf("%d",&n);
          printf("\n");
          printf("entrez le nombre de colonne de la matrice m1 \t");
          scanf("%d",&m);
          printf("\n");
          
          
          printf("entrez le nombre de ligne de la matrice m2 \t");
          scanf("%d",&a);
          printf("\n");
          printf("entrez le nombre de colonne de la matrice m2 \t");
          scanf("%d",&b);
          printf("\n");
} 

void addition()
 
 {                
         // on vérifie si les deux matrices ont le même format //
         if ((n==a)&&(m==b))
         {
         printf("les deux matrices ont le meme format\n\n");
         printf("entrez les elements de la cette matrice m1 \n\n");
         int m1[n][m];
         int m2[a][b];
         int m3[n][m];
         //entrez les valeurs de m1 
             for(i=0;i<n;i++)
             {
                 for(j=0;j<m;j++)
                 {
                 scanf("%d",&m1[i][j]);
                 }
             }
             //affichage de m1
             printf("voici  m1:\n\n");
             for(i=0;i<n;i++)
             {
                 for(j=0;j<m;j++)
                 {
                 printf("\t|%d|",m1[i][j]);
                 }
                 printf("\t\n");
             }
             
             printf("\n\n");
             //entrez les valeurs de m2
             printf("entrez les elements de la cette matrice m2 \n\n");
             for(i=0;i<a;i++)
             {
                 for(j=0;j<b;j++)
                 {
                 scanf("%d",&m2[i][j]);
                 }
             }
              //affichage de m2
              printf("voici  m2:\n\n");
              for(i=0;i<n;i++)
             {
                 for(j=0;j<m;j++)
                 {
                 printf("\t|%d|",m2[i][j]);
                 }
                 printf("\t\n");
             }
             //affichage de m2+m1
            printf("\n");
            printf("le resultat de l'addition m1+m2 \n\n"); 
            
            for(i=0;i<n;i++)
             {
                 for(j=0;j<m;j++)
                 {
                 m3[i][j]= m1[i][j]+ m2[i][j];
                 printf("\t|%d|",m3[i][j]);
                 }
                 printf("\n");
             }
                             
         } 
         else
         {
         printf("vous pouvez pas faire l'addition car les deux matrices n'ont pas le meme format \n\n");
         }
          
}        

void soustraction()
{
      // on vérifie si les deux matrices ont le même format //
         if ((n==a)&&(m==b))
         {
         printf("les deux matrices ont le meme format\n\n");
         printf("entrez les elements de la cette matrice m1 \n\n");
         int m1[n][m];
         int m2[a][b];
         int m3[n][m];
         //entrez les valeurs de m1 
             for(i=0;i<n;i++)
             {
                 for(j=0;j<m;j++)
                 {
                 scanf("%d",&m1[i][j]);
                 }
             }
             //affichage de m1
             printf("voici  m1:\n\n");
             for(i=0;i<n;i++)
             {
                 for(j=0;j<m;j++)
                 {
                 printf("\t|%d|",m1[i][j]);
                 }
                 printf("\t\n");
             }
             
             printf("\n\n");
             //entrez les valeurs de m2
             printf("entrez les elements de la cette matrice m2 \n\n");
             for(i=0;i<a;i++)
             {
                 for(j=0;j<b;j++)
                 {
                 scanf("%d",&m2[i][j]);
                 }
             }
              //affichage de m2
              printf("voici  m2:\n\n");
              for(i=0;i<n;i++)
             {
                 for(j=0;j<m;j++)
                 {
                 printf("\t|%d|",m2[i][j]);
                 }
                 printf("\t\n");
             }
             //affichage de m2+m1
            printf("\n");
            printf("le resultat de la soustraction m1-m2 \n\n"); 
            
            for(i=0;i<n;i++)
             {
                 for(j=0;j<m;j++)
                 {
                 m3[i][j]= m1[i][j]- m2[i][j];
                 printf("\t|%d|",m3[i][j]);
                 }
                 printf("\n");
             }
                             
         } 
         else
         {
         printf("vous pouvez pas faire la soustraction car les deux matrices n'ont pas le meme format \n\n");
         }
         {   
}   
}          
          
void multiplication()
{
     // on vérifie si les deux matrices ont le même format //
         if (m==a)
         {
         printf("les deux matrices ont le meme format\n\n");
         printf("entrez les elements de la cette matrice m1 \n\n");
         int m1[n][m];
         int m2[a][b];
         int m3[m][b];
         //entrez les valeurs de m1 
             for(i=0;i<n;i++)
             {
                 for(j=0;j<m;j++)
                 {
                 scanf("%d",&m1[i][j]);
                 }
             }
             //affichage de m1
             printf("voici  m1:\n\n");
             for(i=0;i<n;i++)
             {
                 for(j=0;j<m;j++)
                 {
                 printf("\t|%d|",m1[i][j]);
                 }
                 printf("\t\n");
             }
             
             printf("\n\n");
             //entrez les valeurs de m2
             printf("entrez les elements de la cette matrice m2 \n\n");
             for(i=0;i<a;i++)
             {
                 for(j=0;j<b;j++)
                 {
                 scanf("%d",&m2[i][j]);
                 }
             }
              //affichage de m2
              printf("voici  m2:\n\n");
              for(i=0;i<a;i++)
             {
                 for(j=0;j<b;j++)
                 {
                 printf("\t|%d|",m2[i][j]);
                 }
                 printf("\t\n");
             }
             //calcul de m2*m1
            printf("\n");
            printf("le resultat de la multiplication m1*m2 \n\n"); 
            z=0;
            for(i=0;i<n;i++)//n c'est nombre de ligne de m3
             {
                 for(j=0;j<b;j++)//b c'esr nombre de colonne de m3
                 {
                              
                      for(k=0;k<m;k++)//m c'est le nombre de colonne de m1
                      
                      {
                      
                      z=(m1[i][k]*m2[k][j])+z;
                      
                      }
                          m3[i][j]=z; 
                          z=0;     
                 }
                
             }
              //affichage de m2*m1
             for(i=0;i<n;i++)
             {
                 for(j=0;j<b;j++)
                 {
                 printf("\t|%d|",m3[i][j]);
                 }
                printf("\n");                
              }               
         } 
         else
         {
         printf("la multiplication est impossible car le nbre de colonne de m1 <> nbre de ligne m2 \n\n");
         }
        
}

int main()
{
    int menu;
    
    printf("\t************************************************\n");
    printf("\t*                                              *\n") ;
    printf("\t*              voici votre menu                *\n");
    printf("\t*                                              *\n") ;
    printf("\t************************************************\n");
    printf("\n\n");
    printf("\t1: tapez 1 pour faire l'addition de deux matrice       \n\n");
    printf("\t2: tapez 2 pour faire la soustraction de deux matrice  \n\n");
    printf("\t3: tapez 3 pour faire la multiplication de deux matrice \n\n");
    scanf("%d",&menu);
    printf("\n\n");
    
    switch (menu)
    {
           case 1:
                {
                affichage();
                addition();
                break;
                }
           case 2:
                {
                affichage();
                soustraction();
                break;
                }
           case 3:
                {
                affichage();
                multiplication();
                break;
                }
    }
 
   
  system("PAUSE");	
  return 0; 
  
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.