Votre question

Est Ce Que Ce Programme est Juste?

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
30 Novembre 2008 21:49:45

Salut,
dans un controle que j'ai passé il n'ya pas mal de temps j'ai eu comme question: Ecrivez un programme qui calcule et affiche le code ASCII de 3 lettres alphabetiques alors jai ecrit le programme suivant:

#include<stdio.h>
#include<conio.h>
main()
{
int a,b,c;
char X,Y,Z;
printf("entrez la valeur de a:");
scanf("%d",&a);
printf("entrez la valeur de b:");
scanf("%d",&b);
printf("entrez la valeur de c:");
scanf("%d",&c);
X='a';
Y='b';
Z='c';
printf("Le Code ASCII de a est %c\n:",&X);
printf("Le Code ASCII de b est %c\n:",&Y);
printf("Le Code ASCII de c est %c\n:",&Z);
getch();
clrscr();
return 0;
}

Ma Question Est : Est ce que mon programme est juste??

Autres pages sur : programme juste

a b L Programmation
1 Décembre 2008 19:20:22

Tu as mis X='a' est équivalent à X=97 puisque 'a'=97.
En fait il fallait mettre X=(char)a; (cast explicite pour éviter le warning, même si ce n'est pas normé).
1 Décembre 2008 20:29:05

merci d'abord pour ta réponse donc d'aprés toi le programme est injuste c'est ca ,incomplet peut être?
mais il ya un probléme c'est que quand je l'execute et que je rentre une valeur pour a par exemple z il me donne les deux resultats suivants sans que je rentre une valeur pour eu et avec un code ASCII incorrect.
peu etre que le probléme vient du compilateur j'utilise Turbo C++ 1.01
B.S: j'ai un probléme avec ce logiciel il ne reconnais pas mon clavier par exemple j'appuie sur effacer il me donne 8 ou j'appuis sur e j'ai ^D c'est du a quoi??
Contenus similaires
a b L Programmation
2 Décembre 2008 19:21:21

Pour moi il n'est pas juste, car tu ne prend spas en compte ce que l'utilisateur écrit.
Je viens de remarquer que dans le printf, tu as donné l'adresse de la variable, au lieu de la valeur de la variable (il faut enlever le &). Dans le scanf, il faut mettre le & car comme c'est une variable à modifier, on ne peut pas la modifier en donnant juste une copie de la valeur (avec une copie de l'adresse mémoire, on peut écrire au bon endroit dans la mémoire, c'est-à-dire dans la variable).
3 Décembre 2008 21:30:04

ok... je vois l'utilité du é commercial(&) mais tu sais meme sans il me donne des codes ASCII identiques a chaque reprise peut etre que ca vient de mon compilateur il marche pas bien mais autrement le probléme viens du & si je l'enléve le programme deviendra juste??
a b L Programmation
4 Décembre 2008 20:20:11

Non, ce n'est pas ton compilateur.
C'est ce que j'ai indiqué à mon premier post, c'est dans ton programme que tu mets toujours la même valeur dans X, Y et Z. :) 
8 Décembre 2008 14:42:31

ah bon et comment faut il faire alors?
a b L Programmation
8 Décembre 2008 21:01:15

char est un nombre, il te suffit de convertir un nombre entré sur 4 octets (int) en un nombre sur 1 octet (char), donc: X=(char)a;
9 Décembre 2008 00:56:37

ok merci donc c'est bon comme cela:

#include<stdio.h>
#include<conio.h>
main()
{
clrscr();
int a,b,c;
char X,Y,Z;
printf("entrez la valeur de a:" );
scanf("%d",&a);
printf("entrez la valeur de b:" );
scanf("%d",&b);
printf("entrez la valeur de c:" );
scanf("%d",&c);
X=(char)a;
Y=(char)b;
Z=(char)c
printf("Le Code ASCII de a est %c\n:",&X);
printf("Le Code ASCII de b est %c\n:",&Y);
printf("Le Code ASCII de c est %c\n:",&Z);
getch();
return 0;
a b L Programmation
9 Décembre 2008 20:11:39

Enlève le & dans le printf.
9 Décembre 2008 21:05:56

ok alors c comme ca:

#include<stdio.h>
#include<conio.h>
main()
{
clrscr();
int a,b,c;
char X,Y,Z;
printf("entrez la valeur de a:" );
scanf("%d",&a);
printf("entrez la valeur de b:" );
scanf("%d",&b);
printf("entrez la valeur de c:" );
scanf("%d",&c);
X=(char)a;
Y=(char)b;
Z=(char)c
printf("Le Code ASCII de a est %c\n:",X);
printf("Le Code ASCII de b est %c\n:",Y);
printf("Le Code ASCII de c est %c\n:",Z);
getch();
return 0;

Ok Merci mais comment l'executer je suis sous Vista Edition Familiale Premium?
a b L Programmation
10 Décembre 2008 20:22:42

Dev-C++, codeblock, Vicsal C++
11 Décembre 2008 17:29:19

il existe aussi la fonction itoa (integer to ASCII ) enfin elle exite dans lotre sens mais je supose que dans ce sens aussi ca marche.
a b L Programmation
11 Décembre 2008 23:09:58

itoa() n'est pas C ANSI (puisqu'un sprintf suffit).
L'inverse est atoi() qui est, lui, C ANSI.

Ces fonctions ne servent pas à l'encodage ASCII, elles servent juste à convertir une valeur binaire en chaine ASCII représentant la valeur, et inversement. Donc ça ne convient pas à ce qu'il fait.
15 Décembre 2008 22:26:33

avec DEV C++ j'arrive pas a compiler parcequ'il faut mettre [] au lieu de {} plus autres choses, notre prof nous l'a deconseillé mais est ce que Vicsal C++ est compatible avec vista? si oui,est ce qu'il marche comme TURBO C++ j'aurais besoin d'un compilateur identique
a b L Programmation
15 Décembre 2008 23:30:36

non dev-C++ ce sont bien des accolades, et tous ces compilateurs respectent plus ou moins la norme, donc tu ne peux pas avoir de problème de portage pour tes exercices.
16 Décembre 2008 22:13:47

ah bon? pourtant il ne reconnait pas mes accolades il me signale que c'est une erreur, quand je change{ en [ j'ai une erreur et maintenant il ne veut plus rien compiler;un ami m'avait envoyé un programme dont il m'avait affirmé le bon fonctionnement chez moi sous vista avec dev C++ j'ai du mal a le compiler mais alors je n'y arrive pas...
a b L Programmation
16 Décembre 2008 23:57:58

Montre l'erreur exacte. :) 
18 Décembre 2008 20:04:03

dev a ces propre bibliotech nan ? peut etre qu'il faut lui indiquer si il ne les conai pas
21 Décembre 2008 20:19:29

#include<stdio.h>
#include<conio.h>
main()
{
int a,b,c;
char X,Y,Z;
printf("entrez la valeur de a:");
scanf("%d",&a);
printf("entrez la valeur de b:");
scanf("%d",&b);
printf("entrez la valeur de c:");
scanf("%d",&c);
X=(char)a;
Y=(char)b;
Z=(char)c;
printf("Le Code ASCII de a est %c\n",X);
printf("Le Code ASCII de b est %c\n",Y);
printf("Le Code ASCII de c est %c\n",Z);
getch();
return 0;
}

tu as raison crickee le programme est juste merci beaucoup, je concluerais alors que ce topic est résolu!
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS