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 alphabétique d'un tableau de noms


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut tri alphabétique d'un tableau de noms
    Bonsoir,
    Merci de m'aider à résoudre cet exercice.

    Écrire un programme qui remplit un tableau de noms ensuite en parcourant le tableau vérifie si l’ordre alphabétique est respecté entre deux noms successifs et affiche le résultat.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 393
    Points : 23 728
    Points
    23 728
    Par défaut
    Bonsoir,

    Les fonctions strcmp() et strncmp() sont tes amies.

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci b1

    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
    #include "stdafx.h" 
    #include<stdio.h>
    #include<string.h>
    #define TRUE 1
    #define FALSE 0
    void main()
    {
    char t[100];
    int i,j,n;
    int tri = TRUE; 
    printf("nb de mots");
    scanf("%d",&n);
    for(i = 0 ; i < n; i++)
    {
    printf("mot %d \n",i);
    scanf("%s",&t[i]);
    }
    for(j = 0 ; j < n-1 ; j++)
    	{
    		if(t[j]>t[j+1])
    		{
    			tri = FALSE;
            }
    	}getchar();
    if (tri==FALSE)
    {printf("nn les noms ne sont pas triés alphabéthiquement");}
    if (tri==TRUE)
    {printf("oui les noms sont triés alphabétiquement");}
    getchar();
    }

    j ai essayé tout seul d'écrire ce code mais à l'exécution il vérifie juste le tri pour la première lettre et nn pas pour tous les lettres.
    c a dire pour lui cette liste de mots est triée :
    arbre
    beau
    carole
    foot

    et cette liste de meme (alors que ne doit pas l'etre)
    arbre
    animal
    attention

  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
    Ta méthode de lecture des mots est fausse :
    Si tu entres
    "arbre
    beau
    carole
    foot"

    et que tu regardes ce que contient le tableau t[], tu auras : "abcfoot"

    Pour
    "arbre
    animal
    attention"

    tu as "aaattention"
    En fait, après la première entrée, il contient : "arbre"
    ensuite, tu mets la deuxième entrée à partir de l'élément 1 et tu as "aanimal" etc.

    Il te faut non pas un tableau de caractères, mais un tableau de tableaux de caractères

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Citation Envoyé par aiimen Voir le message
    Bonsoir,
    Merci de m'aider à résoudre cet exercice.

    Écrire un programme qui remplit un tableau de noms ensuite en parcourant le tableau vérifie si l’ordre alphabétique est respecté entre deux noms successifs et affiche le résultat.
    Salut, bienvenue sur le forum.

    Obsidian t'as donné la réponse avec strcmp.

    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
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
     
    int main(void)
    {
    	char * tab[] = {"titi","tutu","toto","arbre","arme"};
    	char * tab2[] = {"toto","toto1","toto2","xylophone","zebre"};
    	int i;
    	int n = sizeof tab / sizeof * tab;
    	int n2 = sizeof tab2 / sizeof * tab2;
    	int ok = 1;
     
    	for(i = 1 ; i < n ; i++)
    	{
    		if(strcmp(tab[i-1],tab[i]) > 0)
    		{
    			ok = 0;
    			break;
    		}
    	}
     
    	printf("ok = %d\n",ok);
     
    	ok = 1;
     
    	for(i = 1 ; i < n2 ; i++)
    	{
    		if(strcmp(tab2[i-1],tab2[i]) > 0)
    		{
    			ok = 0;
    			break;
    		}
    	}
     
    	printf("ok = %d\n",ok);
     
     
    	return 0;
    }
    Reste juste maintenant à lire des chaines de caractères. Pour cela, j'utiliserais strdup() (non portable). N'oublie pas ensuite de faire un free() après strdup()

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/01/2012, 11h24
  2. tri alphabètique d'un tableau
    Par kergad dans le forum Langage
    Réponses: 4
    Dernier message: 25/08/2010, 04h32
  3. Juste pour le fun - Tri alphabétique d'un tableau()
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 23/05/2008, 19h43
  4. Réponses: 4
    Dernier message: 31/07/2007, 14h34
  5. tri alphabétique dans un tableau deux dimensions
    Par *!!cocco!!* dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 06/12/2004, 21h38

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