Aide moi svp, Tri de matrice

Résolu
Bonjour,

Svp mes amis je veux le code source en c de cette exercie !

Ecrirce une fonction qui tri par ordre croissant une matrice de taille n*m quel conque.

13 réponses

  1. C'est assez simple, tu crée un tableau de taille n*m, tu le rempli avec les valeurs de la matrice, tu tri ton tableau, et tu recoupe ton tableau en n tableau de m element ^^
    0
    1. Stp tu peux me donner le coude source stp ! parce ke je peux pas fais ca tous seul, car je suis un debutant de la programmation :)
      0
      1. Contributeur
        Mizo-Up,
        On n'est pas là pour filer les codes sources mais pour aider à les faire.
        Si c'est un exercice à faire, c'est que tu dois être au moins capable de faire le début. N'hésite pas à nous dire ce qui te bloque vraiment pour qu'on puisse t'aider.
        0
        1. Mais aller stp j'ai un test demain et j'ai beaucoup d'exercie a faire !
          Just je veux la corretion !
          et promis c la derniere fois ;)
          0
          1. Contributeur
            C'est contraire à la charte CCM !
            0
            1. Par définition, une correction, c'est le corrigé de TON travail, tu fourni rien, on peut pas de donner de corrigé :)
              0
              1. voila la fonction main : ( mais il ya des faute je pense ,, )
                #include <stdio.h>
                #include <stdlib.h>

                void main ()
                {
                int matrice [10][10];
                int v[100];
                int i,j,k=0,m,n,dim;
                int p,max,pmax;
                printf ("Donner le nombre de lignes \n");
                scanf ("%d",&m);
                printf ("Donner le nombre de colonnes \n");
                scanf ("%d",&n);
                dim=n*m;

                printf ("Saisir l'elements de la matrice \n");
                for (i=0;i<m;i++)
                for (j=0;j<n;j++){
                printf ("Element [%d][%d] :",i,j);
                scanf ("%d",&matrice[i][j]);
                p=matrice[i][j];
                v[k]=p;
                k++;
                }
                //trier le matrice:
                for (i=0;i<dim;i++){
                max=v[i];
                for (j=i+1;j<dim;j++){
                if (max<v[j]){
                max=v[j];
                pmax=j;
                }
                }
                v[pmax]=v[i];
                v[i]=max;
                }
                printf ("\n");

                // affecter les element du maatrice:

                for (i=0;i<m;i++)
                for (j=0;j<n;j++){
                matrice[i][j]=v[k];
                k++;}
                // la matrice est trier
                for (i=0;i<m;i++){
                for (j=0;j<n;j++)
                printf ("%d",matrice[i][j]);
                printf {"\n"};

                }

                return 0;
                }

                Mais j'ai pas fais la fonction en debut ..
                0
                1. Contributeur
                  Pourquoi penses-tu qu'il y a des fautes ? As-tu compilé ton code ? Quelles sont les erreurs ?
                  0
                  1. nn c bn j'ai trouve ma faute ! c bn j\ai terminer mnt la fonction main!
                    il reste just la fonction au debut, parce ke l'exercie il veut une fonction ki tri le matrice !
                    keske je peux faire ?!
                    0
                    1. Contributeur
                      Je t'apporte les bugs qu'il y avait dans ton code :
                      void main()
                      N'existe pas. Le bon prototype est : int main(void)

                      printf {"\n"};
                      C'est printf("\n"); pas d'accolades.

                      // affecter les element du maatrice:
                      Avant de réutilier la variable k pour afficher la matrice, il faut remettre k à 0;

                      max=v[i];
                      Lors de chaque itération, max vaudra v[i]; Il faut le faire uniquement pour v[0];
                      max = v[0] et le mettre juste avant la boucle.

                      Sinon, tu n'es pas si débutant que tu le dis ;-)
                      0
                      1. lool si j'suis debutant, safait just 3 mois ke j'ai rentre dans le monde du programmation,
                        Bon ,, merci pour l'aide, je doit corriger mes fautes mnt !
                        Mais avant la fonction main, apres les include, comment je peux utulise une fonction .. ?
                        0
                        1. Contributeur
                          Ben pour utiliser une fonction, il suffit de l'appeler.
                          Lorsque tu fais printf("..."); tu fais appel à une fonction dont le prototype est défini dans le header stdio.h.
                          Tu peux également définir toi-même une fonction
                          Par exemple :
                          #include ...
                          void affiche(void) {
                             printf("coucou\n");
                          }
                          

                          Et pour l'appeler dans le main : affiche();
                          0