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 :

palindrome sans utiliser <string.h>


Sujet :

C

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Par défaut palindrome sans utiliser <string.h>
    salut j'ai finis de créer ce programme mais j'aii un peu de doute pouvez vous m'aider a preciser les point faibles de ce programme.
    voila le programme :
    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
    #include<stdio.h>
    #define Max 200
     
    int longeur(char tab[Max]){
    int i=0;
    int cmpt=-1;
    while(tab[i++]!='\0')  {  cmpt++;      }
     
    return cmpt;
    }
     
    void lire_chaine(char tab[Max]){
    int i=0;
    char c;
    c=getchar();
    while((c!='\n')&& (i<Max))
    {
    tab[i++]=c;
    c=getchar();
    }
    tab[i]='\0';
    }
     
    int pal(char tab[Max])  {
    int ln =longeur(tab);
    int i=0;
    while(i<=ln/2){
    if(tab[i]!=tab[(ln-1)-i])return 0;
     
    }
       return 1;
    }
    int main(){
    char tab[Max];
        lire_chaine(tab);
        if(pal(tab))
    printf("la longeur est Pal");
    else printf("la longeur est Pal");
    getchar();
    }

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Salut,

    Je vais faire fonction par fonction.

    1) int longueur(char tab[Max])

    Tu pourrais n'utiliser qu'une seule variable, ça serait plus élégant.

    2) void lire_chaine(char tab[Max])

    Il y a un problème de borne, si tu mets Max à 1 caractère, tu comprendras mieux ce qui se passe. Le caractère de fin '\0' est stocké en dehors de la zone allouée.

    3) int pal(char tab[Max])

    i n'est jamais incrémenté... as-tu testé ton programme ?
    De plus, je pense que le mieux, c'est que lire_chaine renvoie un entier pour dire le nombre de caractère lu. Tu pourrais ainsi faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int est_un_palindrome(char *tab, int size);
     
    printf("%d", est_un_palindrome(tab, lire_chaine(tab));
    4) Le main : tes deux printf ne veulent pas dire grand chose.

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Par défaut Merci
    merci bcp .
    Pouvez-vous corriger mon programme, s'il vous plaît

  4. #4
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Non, et puis quoi encore, tu as tout ce qu'il te faut pour le faire toi même.

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Par défaut merci
    Ca y est j'ai trouve
    merci bcp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. REGEX: match deux strings séparées sans utiliser le point
    Par billybobbonnet dans le forum Accès aux données
    Réponses: 0
    Dernier message: 01/10/2014, 12h42
  2. Réponses: 5
    Dernier message: 06/10/2011, 16h58
  3. [C#] ValueMember sans utiliser de string
    Par Jinroh77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/08/2006, 11h26
  4. Réponses: 10
    Dernier message: 04/05/2006, 23h55
  5. Réponses: 9
    Dernier message: 30/11/2005, 18h18

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