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 :

je ne vois pas l'erreur


Sujet :

C

  1. #1
    Membre régulier Avatar de aba.com
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Points : 99
    Points
    99
    Par défaut je ne vois pas l'erreur
    je débute avec le langage c et j'ai voulu reprendre un tp d'une classe sup et je bloque voici le code ou est le probléme?au fait ce code a pour but de convertit une chaine caraactere en miniscule en majuscule de le crypter avec une valeur de décalage entrer par l'utilisateur etc juste un peu d'aide et je fais le reste
    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
    74
    75
    76
    77
    78
     #include <stdio.h>
    #include <conio.h>
    #include <ctype.h>
    #include <stdlib.h>
    #include <string.h>
     char saisie ( char CH){
         printf("entrez la chaine");
         scanf("%s",&CH);
         return CH;
         }
     
      char ConvMaj(char CH){
            saisie(CH);
              toupper(CH);
              return CH;
              }     
     
       char  ConvMin(char CH){
              saisie(CH);
              tolower(CH);
              return CH ;}
     
             int Compare( const char CH1[20], const char CH2[20]){
                   int res;
                   printf("saisir chaine 1");
                   scanf("%s",&CH1);
                   printf("saisir chaine 2");
                   scanf("%s",&CH2);
                   res = (strcmp(CH1, CH2));
                   if (res < 0)
                   printf("%s précede  %s",CH1,CH2);
                   else if (res ==0);
                   printf("%s est égal à %s",CH1,CH2);
     
                   if ((res > 0))
                   printf("%s précede %s", CH2,CH1);
                   return res; }
     
                int   Longueur (char CH[20] ){ 
                      int Long;
     
                      saisie(CH);
     
                   Long = strlen (CH);
                   return Long;}
     
                  char Crypter (char CH[20]){
                        int I,D,Long;
                        printf(" entrez la valeur de décalage");
                        scanf("%d",&D);
                        Long=strlen(CH);
                        while (CH[I]<Long)
                        CH[I]+=D;
                        return CH[I];}
     
     
     
     
     main()
    { 
           int S ,CM, Cm, CMP ,L;
           int choix,CONC, CRYPT, DECRYPT,CV;
           char CH,chaine1,chaine2;
     
     
      printf("faite votre choix");
      scanf("%d",&choix);
       switch(choix){
                     case 1 : saisie(CH);
                     case 2 : ConvMaj(CH);
                     case 3 : ConvMin(CH);
                      case 4 : compare(CMP);
                     case 5 : Longueur (CH);
                     case 6 : Crypter(CH);
                     default : printf("pas autoriser"); 
    }
      getch();
    }
    Beugue Serigne TOUBA

  2. #2
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 076
    Points : 2 328
    Points
    2 328
    Par défaut
    La fonction compare n'esiste pas, il s'agit de la fonction Compare.
    Dans le main , case 4 du switch. Il faudra aussi passer les bon arguments

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      printf("faite votre choix");
      scanf("%d",&choix);
       switch(choix){
                     case 1 : saisie(CH);
                     case 2 : ConvMaj(CH);
                     case 3 : ConvMin(CH);
                      case 4 : compare(CMP);
                     case 5 : Longueur (CH);
                     case 6 : Crypter(CH);
                     default : printf("pas autoriser");

  3. #3
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Tu as beaucoup de fautes aussi.
    Dans ta fonction saisie tu demandes un char, mais ensuite tu utilises scanf avec un %s (donc pour une chaîne de caractères).
    Si tu veux un caractère, c'est %c.

    Dans ta fonction ConvMaj tu ne fera rien avec toupper car tu ne récupères pas la valeur qu'elle renvoie
    Pareil pour saisie et ConvMin.

    Dans ta fonction Compare tu demandes des chaînes de caractères constantes et ensuite tu tentes de les modifier dans tes scanf !
    Si tu veux récupérer une chaîne de caractère il faut enlever les & dans tes scanf.

    La déclaration du main se fait de cette manière :

    Et j'en ai passé plein
    Plus tu pédales moins fort, moins t'avances plus vite.

  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
    Et pour compléter, le switch() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       switch(choix){
                     case 1 : saisie(CH);
                     case 2 : ConvMaj(CH);
                     case 3 : ConvMin(CH);
                      case 4 : compare(CMP);
                     case 5 : Longueur (CH);
                     case 6 : Crypter(CH);
                     default : printf("pas autoriser"); 
    }
    Si choix == 1 tu vas faire saisie(CH); puis ConvMaj(CH); puis... puis printf("pas autoriser");
    Si tu ne veux faire qu'une des actions selon la valeur de choix, il faut terminer le case par un break.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       switch(choix){
                     case 1 : saisie(CH);
                              break;
                     case 2 : ConvMaj(CH);
                              break;
    // etc
    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
    Membre régulier Avatar de aba.com
    Inscrit en
    Juillet 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 65
    Points : 99
    Points
    99
    Par défaut ok
    ok j'ai bien compri maintenant je vais m'y remettre tout de suite pour voir ce que ca va donner merci encore a tous
    Beugue Serigne TOUBA

Discussions similaires

  1. [ImageMagick] Utilisation de getimagesize : je ne vois pas l'erreur
    Par JavaAcro dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 22/06/2006, 21h42
  2. Je ne vois pas l'erreur:( qlq pourra m'aider !
    Par moonia dans le forum Langage
    Réponses: 23
    Dernier message: 18/05/2006, 14h55
  3. Je ne vois pas l'erreur...
    Par nunurs83 dans le forum C
    Réponses: 21
    Dernier message: 16/05/2006, 21h47
  4. Beuggouillage...je vois pas l'erreur
    Par Force_Rouge dans le forum C
    Réponses: 3
    Dernier message: 29/03/2006, 11h12
  5. Clé etrangere erreur 150 mais je vois pas l'erreur
    Par HurtMarley dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 03/05/2005, 16h57

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