Erreur lors de la compilation en C
Dim78
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je débute totalement en C, je dois, dans le cadre d'un exercice de cours, écrire un programme qui revoit le code ASCII d'un entier.
J'ai donc écrit ce programme :
"
#include <stdio.h>
#include <math.h>
int main() {
int a;
printf("Donnez un entier compris entre 0 et 127\n");
scanf ("%d",&a);
printf ("Le caractère ayant '%d' pour code ASCII est",a);
if (-1 < a < 32) or (a == 127)
printf ("un caractère de contrôle non affichable\n");
else if ( 64 < a < 91 )
printf ("'%c' de l'alphabet latin minuscule\n",a);
else if ( 96 < a < 123 )
printf ("'%c' de l'alphabet latin majuscule\n",a);
else if ( 47 < a < 58 )
printf ("'%d', un chiffre\n",a);
else
printf ("un caractère de ponctuation affichable : '%c'\n",a);
return 0;
}
"
Lors de la compilation, il me met cette erreur : error: expected `;' before `printf'
printf ("un caractère de contrôle non affichable\n");
Je ne comprends pas, pourtant ma boucle IF est correct, non ?
Je vous remercie d'avance de votre aide, un étudiant en détresse
Je débute totalement en C, je dois, dans le cadre d'un exercice de cours, écrire un programme qui revoit le code ASCII d'un entier.
J'ai donc écrit ce programme :
"
#include <stdio.h>
#include <math.h>
int main() {
int a;
printf("Donnez un entier compris entre 0 et 127\n");
scanf ("%d",&a);
printf ("Le caractère ayant '%d' pour code ASCII est",a);
if (-1 < a < 32) or (a == 127)
printf ("un caractère de contrôle non affichable\n");
else if ( 64 < a < 91 )
printf ("'%c' de l'alphabet latin minuscule\n",a);
else if ( 96 < a < 123 )
printf ("'%c' de l'alphabet latin majuscule\n",a);
else if ( 47 < a < 58 )
printf ("'%d', un chiffre\n",a);
else
printf ("un caractère de ponctuation affichable : '%c'\n",a);
return 0;
}
"
Lors de la compilation, il me met cette erreur : error: expected `;' before `printf'
printf ("un caractère de contrôle non affichable\n");
Je ne comprends pas, pourtant ma boucle IF est correct, non ?
Je vous remercie d'avance de votre aide, un étudiant en détresse
A voir également:
- Erreur lors de la compilation en C
- Dans la table des matières du document à télécharger, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur 0x80070570 ✓ - Forum Windows 10
- Erreur s3 bbox - Forum Bbox Bouygues
- Erreur 4101 - Forum Carte graphique
2 réponses
ton if est incorrect, il faut que toute l'expression soit entre parenthèses :
sinon ton compilateur pense que or (a == 127) est la ligne de code suivante.
tu peux aussi simplifier en :
if ((-1 < a < 32) or (a == 127) )
sinon ton compilateur pense que or (a == 127) est la ligne de code suivante.
tu peux aussi simplifier en :
if (-1 < a < 32 || a == 127)
Merci de ta réponse, j'ai appris à coder en ADA, je garde quelques mauvais réflexes que je vais devoir effacer ... :s
Mon programme compile normalement maintenant mais lors de l'exécution, dans tous les cas, il me met "un caractère de contrôle non affichable".
Quelqu'un a une idée ? ^^'.
J'aimerais ajouter que j'ai un warning par ligne de if aussi : "comparisons like `X<=Y<=Z' do not have their mathematical meaning [-Wparentheses]
else if ( 47 < a < 58 ) "
Mon programme compile normalement maintenant mais lors de l'exécution, dans tous les cas, il me met "un caractère de contrôle non affichable".
Quelqu'un a une idée ? ^^'.
J'aimerais ajouter que j'ai un warning par ligne de if aussi : "comparisons like `X<=Y<=Z' do not have their mathematical meaning [-Wparentheses]
else if ( 47 < a < 58 ) "