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 :

Tri d'un tableau niveau débutant


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 33
    Points : 20
    Points
    20
    Par défaut Tri d'un tableau niveau débutant
    hello , j'ai un projet à faire pour mon école et je suis un peu en galère pour ma partie de programmation . voici mon code
    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
    #include <stdio.h>
     
     
     
    int M[10]={ 22 , 18 ,12 ,11 ,7 ,15, 6, 5, 4, 9 };
     
     
    void copier( int debut , int N , int M[int X],int T[int Y]){
    int i,N,debut;
     
    for(i=debut;i<N;i++){
    T[i]=M[i];
    }
     
    }
     
     
    void trier(int T[int Y] , int n){
    int i,j,temp;
     
    for (i=0;i<n-1;i++){
    for (j=i+1;j<n;j++){
    if (T[i]>=T[j]){
    int temp;
    temp=T[i];
    T[i]=T[j];
    T[j]=temp;
    }
    }
    }
     
    int main(){
    int i,j;
    int N,milieu,temp;
    printf("rentre une valeur de N");
    scanf("%d",&N);
    milieu=(int)((N-1)/2);
    i=0;
    int T[N];
     
     
    while(*M[i]=NULL){
     
    if (i>=N-1){
    	copier(i-N+1,N,M,T);
    	trier(T,N);
    	M[i-milieu]=T[milieu];
    	}
    i=i+1;
    }
     
    }}
    Le principe est le suivant : à partir d'un tableau de valeurs de dimension P (exemple M=500) , on doit prendre N valeurs ( ex : N=3 ) , on doit recopier les N valeurs dans un tableau T ( de dimension N ) , prendre la valeur médiane et la garder en mémoire dans une variable M. on appelle ca l'algorithme du filtre médian

    mon problème est que ca m'affiche : ligne 8 D:\filtremedian.c syntax error before "int" , pareil à la ligne 18 .
    quelqu'un pourrait m'aider svp ???
    merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Andrey Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    void copier( int debut , int N , int M[int X],int T[int Y]){
    <...>
    mon problème est que ca m'affiche : ligne 8 D:\filtremedian.c syntax error before "int" , pareil à la ligne 18 .
    quelqu'un pourrait m'aider svp ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void copier( int debut , int N , int M[X],int T[Y]){
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void copier( int debut , int N , int M[],int T[]){
    http://emmanuel-delahaye.developpez.....htm#param_tab

    Il y'a d'autres erreurs de codage. Ceci est correct
    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
     
    #include <stdio.h>
     
    void copier (int debut, int N, int M[], int T[])
    {
       int i;
     
       for (i = debut; i < N; i++)
       {
          T[i] = M[i];
       }
     
    }
     
    void trier (int T[], int n)
    {
       int i, j;
     
       for (i = 0; i < n - 1; i++)
       {
          for (j = i + 1; j < n; j++)
          {
             if (T[i] >= T[j])
             {
                int temp;
                temp = T[i];
                T[i] = T[j];
                T[j] = temp;
             }
          }
       }
     
    }
     
    int main (void)
    {
       int M[10] = { 22, 18, 12, 11, 7, 15, 6, 5, 4, 9 };
       int N, milieu;
       printf ("rentre une valeur de N");
       scanf ("%d", &N);
       milieu = (int) ((N - 1) / 2);
       {
          int i = 0;
          int T[N];
     
          while (M[i] == 0)
          {
             if (i >= N - 1)
             {
                copier (i - N + 1, N, M, T);
                trier (T, N);
                M[i - milieu] = T[milieu];
             }
             i++;
          }
       }
       return 0;
    }
    Mais la logique est étrange.

    risque fort de faire une boucle infinie puisqu'il n'y a pas de 0 dans M.
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    merci beaucoup c'est toujours aussi plaisant de venir sur ce fofo

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Points : 170
    Points
    170
    Par défaut
    Toutefois un petit conseil : fait attention à indenter correctement ton code. Notament en ajoutant une tabulation à chaque nouveau bloc fonctionnel. Les raisons ne sont pas seulement esthétiques. Cela augmente la lisibilité et facilite le débugage.
    Tu verras, c'est astreignant au début, mais une fois qu'on a chopé le coup, cela donne de très grands services.

    Bon courage pour ton projet...

Discussions similaires

  1. [Débutant] Programme de tri d'un tableau pour 8086
    Par incontrolable dans le forum x86 16-bits
    Réponses: 0
    Dernier message: 09/05/2010, 04h36
  2. [MFC] Lire une string (niveau débutant)
    Par Korskarn dans le forum MFC
    Réponses: 10
    Dernier message: 24/08/2005, 18h38
  3. tri d'un tableau à 2 dimensions
    Par dede92 dans le forum C
    Réponses: 4
    Dernier message: 19/02/2005, 18h29
  4. [langage] Probleme de tri d'un tableau de tableau
    Par Ludo167 dans le forum Langage
    Réponses: 1
    Dernier message: 25/08/2004, 10h32
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

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