IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

aidez moi à résoudre cet exercice


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut aidez moi à résoudre cet exercice
    il s'agit d'éliminet toutes les occurences d'un entier x dans un tableau T d'entiers (X et T sont saisis par l'utilisateur)
    voilà mon code(cela n'apas marché):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    #include<stdio.h>
    #include<conio.h>
     
          void lecture(int *x,int *n,int *t)
        {
        int i;
        do
        {
               printf("x= ");
               scanf("%d",x);
        }   
        while (*x<0);
     
        do  
        {
               printf("saisir la taille du tableau");
               scanf("%d",n);
        }
        while ((*n<=0) || (*n>50)); 
     
        for(i=0;i<*n;i++)
        {
              printf("t[%d]=" ,i);
              scanf("%d",&t[i]);
     
        }    
        }
     
            void occurence(int n,int x,int *t)
        {
     
          int i,test,aux;
     
          do
          {
            test=0;
            for(i=0;i<t[n];i++)
            {
            if ((t[i]== x) && (t[i+1] != x)) 
            {
               aux=t[i];
               t[i]=t[i+1];
               t[i+1]=aux;
               test=1;     
            }
            }      
          }
          while (test!=0);
        } 
     
               void affichage(int n,int x, int *t)
          {
          int i,nbr=0;
          for(i=0;i<n;i++)
          {
          if (t[i]=x) nbr++;
          } 
          printf("le tableau après élimination des occurences est : \n");
           for(i=0;i<n-nbr;i++)
          {
          printf("%d",*(t+i));
          }   
     
          }
     
        int main ()
         {
             int x,n,t[50];
             lecture(&x,&n,t);
             occurence(n,x,t);
             affichage(n,x,t);
             getch();
         }

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    occurence():
    Es-tu sûr de la condition i<t[n] ?

    affichage()
    Es-tu sûr de la condition t[i]=x ?
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    ça sera
    occurence()
    for(i=0;i<t[n-1];i++)
    affichage()
    if (t[i]== x) nbr++;

    ??

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    *Je ne vois pas le rapport entre i et le contenu du tableau.

    **Ca semble mieux
    Mais comme apparemment, ton algorithme est de rejeter en fin de tableau tous les caractères x, il semble naturel de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void affichage(int n,int x, int *t)
    {
        int i;
        printf("le tableau après élimination des occurences est : \n");
        for(i=0; i<n && t[i] != x; i++) printf("%d",*(t+i));
    }
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  5. #5
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    ouaiiiis tout simplement
    merciiiiiiii pour votre aide
    ça semble évident, je comprends pas pk jai compliqué les choses :p
    jvous remerciiie

  6. #6
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Mais le prof m'a dit que ce n'été pas le but de l'exercice , il faut faire les changements au niveau du tableau,on force pas l'affichage :s
    j'ai essayé cette solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    #include<stdio.h>
    #include<conio.h>
     
          void lecture(int *x,int *n,int *t)
        {
        int i;
        do
        {
               printf("x= ");
               scanf("%d",x);
        }   
        while (*x<0);
     
        do  
        {
               printf("saisir la taille du tableau");
               scanf("%d",n);
        }
        while ((*n<=0) || (*n>50)); 
     
        for(i=0;i<*n;i++)
        {
              printf("t[%d]=" ,i);
              scanf("%d",&t[i]);
     
        }    
        }
     
     
          void occurence(int *n,int x,int *t)
          {
               int i,j=0;
               for (i=0;i<*n;i++)
               {
                   if (t[i] != x)
                   {
                           t[j]=t[i];
                           j++;
     
     
          }}
          *n=j;
          }
     
     
               void affichage(int n,int x, int *t)
          {
          int i;
          printf("le tableau après élimination des occurences est : \n");
          for(i=0;i<n;i++)
          {
             printf("%d",*(t+i));
          }   
          }
     
        int main ()
         {
             int x,n,t[50];
             lecture(&x,&n,t);
    occurence(&n,x,t);
             affichage(n,x,t);
             getch();
         }

  7. #7
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    C'est la solution la plus logique à mon avis
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

Discussions similaires

  1. ORA-00904. Aidez moi à resoudre cet erreur
    Par houre dans le forum SQL
    Réponses: 1
    Dernier message: 06/01/2009, 06h55
  2. Aidez moi à résoudre ce problème [les listes]
    Par ghorbelala dans le forum C++
    Réponses: 3
    Dernier message: 23/05/2008, 22h38
  3. Réponses: 5
    Dernier message: 17/03/2008, 15h48
  4. SVP aidez moi à résoudre ce prob de Filtrage
    Par kiops dans le forum Bases de données
    Réponses: 8
    Dernier message: 14/05/2007, 00h58
  5. aidez moi dans cet exercice pour un exposer
    Par yassin123441 dans le forum C++
    Réponses: 15
    Dernier message: 09/03/2007, 17h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo