A voir également:
- Prendre un char
- Coco char - Accueil - Réseaux sociaux
- Prendre photo avec webcam - Guide
- Prendre un instantané pdf - Guide
- Prendre une photo avec son mac - Guide
- Comment copier dans word un instantané d'un pdf - Forum PDF
6 réponses
apprendreEtSeDevelopper
Messages postés
65
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
18 octobre 2013
6
31 juil. 2013 à 15:38
31 juil. 2013 à 15:38
Salut, je ne comprends pas du tout ce que tu fais ici : if (!(c>47 && c<58)) i=c-87; qu'est-ce que 87 ?
De plus pour la compréhension de tous tu peux marquer 'a' pour le caractère ascii de a ext parce qu'on ne connais pas tous les équivalences ACSII :p
De plus pour la compréhension de tous tu peux marquer 'a' pour le caractère ascii de a ext parce qu'on ne connais pas tous les équivalences ACSII :p
Salut, je ne comprends pas du tout ce que tu fais ici : if (!(c>47 && c<58)) i=c-87; qu'est-ce que 87 ? De plus pour la compréhension de tous tu peux marquer 'a' pour le caractère ascii de a ext parce qu'on ne connais pas tous les équivalences ACSII :pJe ne peux pas lire ton message sur le forum (bizarre) alors je le copie ici.
le: if (!(c>47 && c<58)) i=c-87; sert que si je n'ai pas un nombre entre 0 et 9 je retire -87 en décimale (ex 'a' = 97, 97-86 = 10 qui est la valeur hexa de a)
apprendreEtSeDevelopper
Messages postés
65
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
18 octobre 2013
6
31 juil. 2013 à 16:59
31 juil. 2013 à 16:59
#include <stdio.h> #include <stdlib.h> int main(void){ char c ; int i; puts( "Entrez un nombre sous forme hexadecimal" ); do{ scanf("%c", &c); } while( !(c>='a' && c<='f') && !(c>='A' && c<='F') && !(c>='0' && c<='9') ); if (!(c>='0' && c<='9')) (c>='a' && c<='f')?i=c-('a' - 10):i=c-('A' - 10); else i=c - '0'; printf( "le caractere %c equivaut au nombre %d\n" , c , i ) ; system("pause"); return EXIT_SUCCESS ; }
Voila, le programme marche mais je ne comprends vraiment pas la consigne xD
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
31 juil. 2013 à 22:04
31 juil. 2013 à 22:04
@apprendreEtSeDevelopper,
Ca m'étonnerait que le programme fonctionne en l'état...
Tu utilises mal l'opérateur ternaire.
Ca m'étonnerait que le programme fonctionne en l'état...
Tu utilises mal l'opérateur ternaire.
apprendreEtSeDevelopper
Messages postés
65
Date d'inscription
vendredi 22 juillet 2011
Statut
Membre
Dernière intervention
18 octobre 2013
6
1 août 2013 à 11:50
1 août 2013 à 11:50
Qu'est-ce qui ne va pas dans mon opérateur ternaire?
Condition : (c>='a' && c<='f')
si TRUE : i=c-('a' - 10)
si FALSE : i=c-('A' - 10);
A l'exécution on obtient le résultat attendu...
Condition : (c>='a' && c<='f')
si TRUE : i=c-('a' - 10)
si FALSE : i=c-('A' - 10);
A l'exécution on obtient le résultat attendu...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 août 2013 à 15:25
1 août 2013 à 15:25
Disons que ça ne s'utilise pas exactement comme ça. Et je suis surpris que ton compilateur ne gueule pas. Tu as oublié la ...
Il faut plutôt mettre :
i=(c>='a' && c<='f')?c-('a' - 10):c-('A' - 10);
Il faut plutôt mettre :
i=(c>='a' && c<='f')?c-('a' - 10):c-('A' - 10);
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
31 juil. 2013 à 22:05
31 juil. 2013 à 22:05
C'est quoi la consigne exacte ?
Quel est le nombre max de lignes que tu peux ? C'est toi qui as écrit le début du programme ou c'était imposé ?
Quel est le nombre max de lignes que tu peux ? C'est toi qui as écrit le début du programme ou c'était imposé ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
1 août 2013 à 14:26
1 août 2013 à 14:26
Si j'ai bien compris, c'est un convertisseur de digit hexadécimal en valeur décimal.
de 0 à 9 tu retourne 0 à 9 (mais comme tu lis un caractère, il y a une conversion).
de A à F, tu retourner de 10 à 15.
de 0 à 9 tu retourne 0 à 9 (mais comme tu lis un caractère, il y a une conversion).
de A à F, tu retourner de 10 à 15.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 août 2013 à 14:57
1 août 2013 à 14:57
Oui, j'ai compris ça aussi. Mais au vu de son post, il y a des contraintes supplémentaires (nombre de lignes max imposé ? parcelle de code obligatoire ?, , n'utiliser que des fonctions dont le prototype est défini dans stdio.h et stdlib.h, etc.)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
31 juil. 2013 à 22:09
31 juil. 2013 à 22:09
Sinon, je propose :
#include <stdio.h> #include <ctype.h> int main(void){ int c ; puts( "Entrez un nombre sous forme hexadecimal" ); do{ c=toupper(getchar()); } while(c==EOF || ! ((c>='A' && c<='F') || (c>='0' && c<='9')) ); printf( "le caractere %c equivaut au nombre %d\n" , c , c>'A'?c-'A':c-'0') ; getchar(); return 0; }