Aidez moi exercice en c

Résolu
argelino -  
messi89 Messages postés 28 Statut Membre -
Bonsoir,

voila svp
donnez moi la sol de cet exo en c merci (je n'ai besoin trés rapidement si vous pouvez)

on considere un mat[10][20] de chaine de caract.chaque ligne comporte un mot .choisir une methode de tri(bulle;selection;insertion) et appliquer a la matrice afin de la trier dans l'ordre croissant les mots enregistrer dans la mat

merci de votre aide
Configuration: Windows XP
Firefox 2.0.0.3

20 réponses

  1. Mycki Messages postés 113 Statut Membre 46
     
    Creusons nous la tete pendant qu'il se tourne les pouces !!!

    Sérieusement, si tu veux de l'aide, commence par essayer, et si tu as des problèmes, fais le nous savoir !
    1
  2. jackom Messages postés 62 Statut Membre 16
     
    aide toi et nous t'aideron
    0
  3. argelino
     
    j'ai essaye mais je n'ai rien oubtenu

    je veux juste l'idée

    merci
    0
  4. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    il faut que tu regarde la premiere case de chaque ligne et tu fait un tri par ordre alphabetique
    voila
    bonne chance
    poste ce tu as essayé et on t'aideras
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. argelino
     
    voial ce que j'ai pensé mais ça marche pas apperement
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>

    main()
    {int p,i,n,j;char a[20];char x[20];
    printf("donnez le nombre de mot\n");
    scanf("%d",&n);
    for(i=0;i<n;i++) {printf("donnez le %d eme mot",i);
    gets(a);}

    for(i=0;i<n;i++)
    {for(j=n-1;j<=i;j--)
    {for(p=0;p<20;p++)
    {if (a[j-1][p]<a[j][p]) break;}
    strcpy(x,a[j-1][p]);
    strcpy(a[j-1][p],a[j][p]);
    strcpy(a[j][p],x);
    }
    }
    system("pause");
    }

    je suis totalement blocké aidez moi merci

    au moin dite moi quel est l'idée a faire pour que je puisse reflichir

    merci
    0
  7. argelino
     
    voila j'ai essayé de faire ça aussi

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    main()
    {int i,j,n,m;
    char ch[20],a[10][20];
    char **p;
    printf("donnez n:\n");
    scanf("%d",&n);
    printf("donnez m:\n");
    scanf("%d",&m);
    for(i=0;i<n;i++)
    {printf("donnez le %deme mot:\n",i+1);
    scanf("%s",ch);
    strcpy(a[i],ch);}

    for(i=0;i<=n-1;i++) {
    if(ch[i]>ch[i+1]) {*(p+i)=ch[i+1];*(p+i+1)=ch[i];}
    }
    p=(char **)malloc(sizeof( char *));
    for(i=0;i<n;i++)
    {*(p+i)=a[i];
    printf("%s\n",*(p+i));
    }

    system("pause");
    }
    0
  8. argelino Messages postés 9 Statut Membre
     
    voila je me suis iscrit pour modifie le dernier poste mais je ne peut pas

    voila

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    main()
    {int i,j,n,m;
    char ch[20],a[10][20];
    char **p;
    printf("donnez n:\n");
    scanf("%d",&n);
    printf("donnez m:\n");
    scanf("%d",&m);
    for(i=0;i<n;i++)
    {printf("donnez le %deme mot:\n",i+1);
    scanf("%s",ch);
    strcpy(a[i],ch);}

    p=(char **)malloc(sizeof( char *));
    for(i=0;i<n;i++)
    {*(p+i)=a[i];
    printf("%s\n",*(p+i));
    }

    for(i=0;i<=n-1;i++) {
    if(ch[i]>ch[i+1]) {*(p+i)=ch[i+1];*(p+i+1)=ch[i];}
    }
    p=(char **)malloc(sizeof( char *));
    for(i=0;i<n;i++)
    {*(p+i)=a[i];
    printf("%s\n",*(p+i));
    }

    system("pause");
    }
    0
  9. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    tu peux faire plus simple
    essaye ça:
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    main()
    {
        int i,j;
        char tab[10][20];char x[20];
    
        for(i=0;i<10;i++)
        {
            printf("donnez le mot %i : \n",i+1);
            scanf("%s",&tab[i]);
        }
            printf("tableau de mot avant tri\n");
            for(i=0;i<3;i++)
                printf("%s\n",tab[i]);
    
        for(i=0;i<9;i++)
            for(j=i+1;j<10;j++)
                if(tab[i][0]>tab[j][0])
                {
                    strcpy(x,tab[i]);
                    strcpy(tab[i],tab[j]);
                    strcpy(tab[j],x);
                }
    
        printf("\ntableau de mot apres tri\n");
            for(i=0;i<3;i++)
                printf("%s\n",tab[i]);
    system("pause");
    }
    
    0
    1. argelino Messages postés 9 Statut Membre
       
      merci
      je l'ai testé mais il ne tri rien je ne sais pas pourquoi
      il me donne les meme mot sans tri
      apres le tri ???
      0
  10. argelino Messages postés 9 Statut Membre
     
    regarde si on a 2mot

    comme ça

    aaa
    aab

    ton program ne compare que le 1er caract de chaque

    mais merci quand meme tu ma donné une bonne idée
    0
    1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
       
      en effet j'avais oublié de traité le cas ou les deux mots auraient le meme premier caractere a ce moment il faut comparer le caractere suivant
      mais je pense que la tu as toutes les pistes pour finir ton programme
      bonne chance ;)
      0
  11. argelino Messages postés 9 Statut Membre
     
    voila je l'ai modifie mais ya tjr un pti prblm

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>

    main()
    {
    int i,j,k;
    char tab[10][20];char x[20];

    for(i=0;i<5;i++)
    {
    printf("donnez le mot %d : \n",i+1);
    scanf("%s",&tab[i]);
    }
    printf("tableau de mot avant tri\n");
    for(i=0;i<5;i++)
    printf("%s\n",tab[i]);

    for(i=0;i<5;i++)
    for(j=i+1;j<5;j++)
    for(k=0;k<5;k++)
    if(tab[i][k]>tab[j][k])
    {
    strcpy(x,tab[i]);
    strcpy(tab[i],tab[j]);
    strcpy(tab[j],x);
    }

    printf("\ntableau de mot apres tri\n");
    for(i=0;i<5;i++)
    printf("%s\n",tab[i]);
    system("pause");
    }

    quand je lui donne ça

    tableau de mot avant tri
    amine
    amina
    aaa
    xxx
    bbb

    voila le resultat
    tableau de mot apres tri
    xxx
    bbb
    aaa
    amina
    amine

    ou est l'erreur aidez moi svp
    0
  12. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    il tri dans l'ordre inverse il faut peut etre inverser le test...
    0
  13. argelino Messages postés 9 Statut Membre
     
    est qu'il y a quelqu'un qui a trouvé la sol svp
    0
  14. argelino Messages postés 9 Statut Membre
     
    svp aidez moi

    j'ai besoin de vous???
    0
  15. argelino Messages postés 9 Statut Membre
     
    alors??? :(
    0
  16. argelino Messages postés 9 Statut Membre
     
    j'ai rien trouvé le prgram bug encore y'aura pas quelqu'un parmi vous qui peut m'aider svp

    j'ai besoin de la sol
    0
  17. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    pourtant je t'ai donné la solution s'ils ont le meme caractere il faut regarder le suivant
    essaye ça
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    main()
    {
        int i,j,k=0,l=0;
        char tab[5][20];char x[20];
    
        for(i=0;i<5;i++)
        {
            printf("donnez le mot %i : \n",i+1);
            scanf("%s",&tab[i]);
        }
            printf("tableau de mot avant tri\n");
            for(i=0;i<5;i++)
                printf("%s\n",tab[i]);
    
        for(i=0;i<4;i++){
            for(j=i+1;j<5;j++){
                k=0;l=0;
                 while(tab[i][k]==tab[j][l]){
                    k++;l++;}
                if(tab[i][k]>tab[j][l])
                {
                    strcpy(x,tab[i]);
                    strcpy(tab[i],tab[j]);
                    strcpy(tab[j],x);
                }
            }
        }
        printf("\ntableau de mot apres tri\n");
            for(i=0;i<5;i++)
                printf("%s\n",tab[i]);
    system("pause");
    }
    
    0
  18. argelino Messages postés 9 Statut Membre
     
    merci bcp
    tu m a sauvé
    0
  19. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    voici encore une possibilité
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    
    main ()
    {
      int i, j, k;
      char tab[10][20];
      char x[20];
    
      for (i = 0; i < 5; i++){
          printf ("donnez le mot %d : \n", i + 1);
          scanf ("%s", &tab[i]);
      }
      printf ("tableau de mot avant tri\n");
      for (i = 0; i < 5; i++)
        printf ("%s\n", tab[i]);
    
      for (i = 0; i < 5; i++){
        j = i;
        while (j>0 && strcmp(tab[j],tab[j-1]) < 0){
          strcpy (x, tab[j-1]);
          strcpy (tab[j-1], tab[j]);
          strcpy (tab[j--], x);
        }
      }
    
      printf ("\ntableau de mot apres tri\n");
      for (i = 0; i < 5; i++)
        printf ("%s\n", tab[i]);
      system ("pause");
    }
    
    0
  20. messi89 Messages postés 28 Statut Membre 1
     
    essaye ça mon frere et salue boukhedouma de ma part :)

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>

    main()
    {
    int i,j,k,l,n;
    char tab[5][20];char x[20];
    printf("donnez le nbre de mots:\n");
    scanf("%d",&n);

    for(i=0;i<n;i++)
    {
    printf("donnez le mot %i : \n",i+1);
    scanf("%s",&tab[i]);
    }
    printf("tableau de mot avant tri\n");
    for(i=0;i<n;i++)
    printf("%s\n",tab[i]);

    for(i=0;i<n-1;i++){
    for(j=i+1;j<n;j++){
    k=0;l=0;
    while(tab[i][k]==tab[j][l]){
    k++;l++;}
    if(tab[i][k]>tab[j][l])
    {
    strcpy(x,tab[i]);
    strcpy(tab[i],tab[j]);
    strcpy(tab[j],x);
    }
    }
    }
    printf("\ntableau de mot apres tri\n");
    for(i=0;i<n;i++)
    printf("%s\n",tab[i]);
    system("pause");
    }

    a bientot

    ------------------
    http://forum.ouedkniss.com
    0