[C] Mini programme ( demande d'aide )

Bonjour,
Svp aidé moi a créer un programme qui saisit deux matrices de reél
- qui vérifie s'elle sont différentes.
-qui calcul et affiche leur produit.
-qui retourne le maximum de la matrice produit.
Configuration: Windows XP
Internet Explorer 6.0

23 réponses

  1. qui peu méxpliqué skona fé dans se programme il faut que je fas un rapor .
    0
    1. merci mype de ton aide.
      il reste le dernier parti :-qui retourne le maximum de la matrice produit.
      0
      1. toi...on va pas te faire tout le travail sans que tu reflechisses
        0
        1. salut,
          qui peut terminer la derniere partie :- qui retourne le maximum de la matrice produit
          0
          1. Ca marche
            jte remercie infiniment mype pour ton aide, j'ai apris d'autre chose en langage C grace a toi
            merci encore
            ;)
            0
            1. dans ce cas ce que tu as fait était presque bon tu avais juste mal placé ton printf de ta matrice 3 et tu as mis mat1 au lieu de mat3
              essaye ça
              printf("le produit des deux matrices\n");
                   for (i=0;i<n1;i++)
                   {
                       for (j=0;j<n2;j++)
                      {
                           mat3[i][j]=0;
                           for (k=0;k<n2;k++)
                           {
                                 mat3[i][j]+=mat1[i][k]*mat2[k][j];
                           } 
                           printf("%f ",mat3[i][j]);
                      }
                      printf("\n");
                  }
              
              0
              1. http://www.infres.enst.fr/~kaced/ifitep/pages/cours-c/prg-c72.htm#Heading153
                0
                1. Ca marche mais la multiplication de deux matrices
                  n'es pas comme la multiplication direct
                  voilà un exemple de calcul de deux matrice
                  0
                  1. il faut enlever ta variable k elle ne sert rien
                    quand ta boucle commence a 0 elle doit s'arreter a <n1 pas <=n1
                    essaye ça:
                       for (i=0;i<n1;i++)
                         {
                             for (j=0;j<n2;j++)
                             {
                                mat3[i][j]=mat1[i][j]*mat2[i][j];
                                printf("%f ",mat3[i][j]);
                             }
                             printf("\n");
                         }
                    
                    0
                    1. voilà la suite ( le produit mais il ne fonctionne pas ) meme si j'ai rester trop de temps :S

                      #include<stdio.h>
                      int main()
                      {
                        int n1,n2,n3,i,j,k,different=0;
                        float mat1[50][50],mat2[50][50],mat3[50][50];
                      
                          printf("saisir le nombre de ligne des matrices: ");
                          scanf("%d",&n1);
                          printf("saisir la nombre de colonne des matrices: ");
                          scanf("%d",&n2);
                      
                          for(i=0;i<n1;i++)
                          {
                              for(j=0;j<n2;j++)
                              {
                                  printf("saisir mat1[%d][%d]: ",i,j);
                                  scanf("%f",&mat1[i][j]);
                                  printf("saisir mat2[%d][%d]: ",i,j);
                                  scanf("%f",&mat2[i][j]);
                              }
                          }
                      
                          printf("\n---matrice 1----\n");
                          for(i=0;i<n1;i++)
                          {
                              for(j=0;j<n2;j++)
                              {
                                  printf("%f ",mat1[i][j]);
                              }
                              printf("\n");
                          }
                          printf("----matrice 2----\n");
                          for(i=0;i<n1;i++)
                          {
                              for(j=0;j<n2;j++)
                              {
                                  printf("%f ",mat2[i][j]);
                              }
                              printf("\n");
                          }
                      
                          for(i=0;i<n1;i++)
                              for(j=0;j<n2;j++)
                                  if (mat1[i][j]==mat2[i][j])
                                      different++;
                          if(different!=(n1*n2))
                              printf("\nles deux matrices sont différents");
                          else
                              printf("\nles deux matrices sont identiques\n");
                              
                           printf("le produit des deux matrices\n");
                           for (i=0;i<=n1;i++)
                           {
                               for (j=0;j<=n2;j++)
                              {
                                   mat3[i][j]=0;
                                   for (k=0;k<n3;k++)
                                   {
                                         mat3[i][j]=mat1[i][k]*mat2[k][j];     
                                   }
                              }
                          }printf("%f ",mat1[i][j]);
                          
                      0
                      1. c'est pas une fonction dans ta matrice il y a n1 * n2 case par ex si ta 3 ligne n1=3 et 3 colonne n2=3 tu a n1*n2 = 3 * 3 =9 t as donc 9 cases dans ta matrice la variable different verifie le nombre de case identique si different egal 9 alors toutes les cases sont identique donc les deux matrice sont identiques sinon elles sont differentes...
                        0
                        1. cases si different = n1*n2
                          sa veut dire quoi cette fonction ?
                          0
                          1. pour dire que les deux matrice sont identique il faut que toutes leur case soit identique c'est a dire mat1[0][0] egale a mat2[0][0] etc..
                            donc on parcours chaque case des deux matrices et si leur case est identique on rajoute 1 a la variable different
                            donc lorsqu'on aura fini de parcourir toutes les cases si different = n1*n2 c'est a dire si toutes les case sont identiques alor les deux matrice sont identiques sinon elles sont differentes
                            voila j'espere que tu as compris mon exppliction ;)
                            0
                            1. Salut je peux savoir pk tu as utilisé
                              for(i=0;i<n1;i++)
                              for(j=0;j<n2;j++)
                              if (mat1[i][j]==mat2[i][j])
                              different+=1;
                              if(different!=(n1*n2))
                              printf("\nles deux matrices sont différents");
                              else
                              printf("\nles deux matrices sont identiques");
                              }
                              0
                              1. Merci mype pour ton aide j'ai compris
                                je vais essayer avec les autres partie
                                0
                                1. la syntxe de ton scanf n'est pas correct il faut que tu revoies ça
                                  ensuite il faudrait que tu rajoutes des boucle pour voir ce que donne tes matrices a m'affichage
                                  puis il te manque une variable pour tester les differentes cases pour determiner si les matrices sont identique ou pas
                                  essaye ça ( si tu n'as pas compris quelquechose n'hesites pas a demander)
                                  #include<stdio.h>
                                  int main()
                                  {
                                    int n1,n2,i,j,different=0;
                                    float mat1[50][50],mat2[50][50];
                                  
                                      printf("saisir le nombre de ligne des matrices: ");
                                      scanf("%d",&n1);
                                      printf("saisir la nombre de colonne des matrices: ");
                                      scanf("%d",&n2);
                                  
                                      for(i=0;i<n1;i++)
                                      {
                                          for(j=0;j<n2;j++)
                                          {
                                              printf("saisir mat1[%d][%d]: ",i,j);
                                              scanf("%f",&mat1[i][j]);
                                              printf("saisir mat2[%d][%d]: ",i,j);
                                              scanf("%f",&mat2[i][j]);
                                          }
                                      }
                                  
                                      printf("\n---matrice 1----\n");
                                      for(i=0;i<n1;i++)
                                      {
                                          for(j=0;j<n2;j++)
                                          {
                                              printf("%f ",mat1[i][j]);
                                          }
                                          printf("\n");
                                      }
                                      printf("----matrice 2----\n");
                                      for(i=0;i<n1;i++)
                                      {
                                          for(j=0;j<n2;j++)
                                          {
                                              printf("%f ",mat2[i][j]);
                                          }
                                          printf("\n");
                                      }
                                  
                                      for(i=0;i<n1;i++)
                                          for(j=0;j<n2;j++)
                                              if (mat1[i][j]==mat2[i][j])
                                                  different+=1;
                                      if(different!=(n1*n2))
                                          printf("\nles deux matrices sont différents");
                                      else
                                          printf("\nles deux matrices sont identiques");
                                  return 0;
                                  }
                                  
                                  0
                                  1. la premiere partie
                                    il fonctionne pas :S
                                    #include<stdio.h>
                                    main()
                                    {
                                    int n1,n2,i,j;
                                    float mat1[50][50],mat2[50][50];
                                    printf("saisir le nombre de ligne matrice 1");
                                    scanf("%d",&n1);
                                    printf("saisir la nombre de colonne matrice 2");
                                    scanf("%d",&n2);
                                    for(i=0;i<n1;i++)
                                    {
                                    for(j=0;j<n2;j++)
                                    {
                                    printf("saisir mat1[%d][%d]",i,j);
                                    scanf("%d %d",&mat1[i][j]);
                                    }
                                    printf("saisir mat2[%d][%d]",i,j);
                                    scanf("%d %d";&mat2[i][j]);
                                    }
                                    if (mat1[i][j]!=mat2[i][j]))
                                    printf("les deux matrices sont différents");
                                    getchar();
                                    getchar()
                                    }
                                    0
                                    • 1
                                    • 2