mikegamer1
Messages postés40Date d'inscriptionmardi 31 juillet 2018StatutMembreDernière intervention19 février 2019
-
Modifié le 26 août 2018 à 12:10
cptpingu
Messages postés3836Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention11 février 2023
-
27 août 2018 à 12:09
Salut
J'ai tjrs un pb avec ce programme.
Comme le dit le titre j'ai décidé de m'y prendre en convertissant l'entier fournit en chaîne de caractères.
Et voici mon code:
Je rappèle à l'avance que je l'ai fait sur un compilateur mobile c que j'ai installé sur mon téléphone.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int nbre;
char chaine[100];
/*
*chaine est un tableau qui contiendra int nbre en chaine de caracteres.
*/
int taille;
/*
*taille est la taille de int nbre.
*/
int p,d;
/*
*p désigne le premier chiffre à afficher et d le dernier.
*/
printf("Nombre:");
scanf("%d",&nbre);
/*
*le nombre entré sera mis sous forme de chaine de caracteres appelé chaine.
*/
sprintf(chaine,"%d",nbre);
/*
*on affiche chaine pour voir si c´est bon
*/
printf("%s",chaine);
/*
*on connaitra ensuite la taille de nbre afin de pouvoir indexé les premier et dernier nbre de chaine
*/
taille=sizeof(nbre);
//On affiche la taille de nbre
printf("\n\t%d",taille);
/*
*les valeurs de p & d dans chaine
*/
p=chaine[0];
d=chaine[taille-1];
//AFFICHAGE DU RÉSULTAT FINAL.
printf("\nle premier chiffre est %d et le dernier est %d",p,d);
return 0;
}
Et à l'affichage j'ai ceci par exemple :
Nombre:35678
35678
4
le premier chiffre est 51 et le dernier est 55
jordane45
Messages postés37260Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention20 mars 2023341 Modifié le 26 août 2018 à 13:10
Bonjour,
Déjà... un nombre est composé de chiffres....
Toi tu veux le premier et le dernier chiffre du nombre saisi par l'utilisateur.
Ensuite... le résultat retourné me semble tout à fait correct...
hormis pour le d
Je pense que c'est simplement
cptpingu
Messages postés3836Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention11 février 2023124 Modifié le 26 août 2018 à 16:27
Bonjour.
@jordan: Le dernier élément d'un tableau est toujours taille - 1, et non taille
Le souci vient juste du mode d'affichage, %c et non %d, car sinon tu auras la valeur du caractère ascii et non sa représentation ('A' => 65, '0' => 48, '1' => 49, etc...)
Sinon, utilise simplement des entiers. Tu demandes un entier, avec %d, et tu déduis le premier et dernier chiffre avec des divisions et des modulos.
jordane45
Messages postés37260Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention20 mars 2023341 Modifié le 26 août 2018 à 17:00
Le souci vient juste du mode d'affichage, %c et non %d, car sinon tu auras la valeur du caractère ascii et non sa représentation ('A' => 65, '0' => 48, '1' => 49, etc...)
Et tu crois que le lien que je lui ai donné parle de quoi ??
cptpingu
Messages postés3836Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention11 février 2023124 26 août 2018 à 23:05
Et tu crois que le lien que je lui ai donné parle de quoi ??
De code ascii. Pas forcément de représentation via printf. Ça peut sembler évident, mais pas forcément pour un débutant. Le complément ne faisait pas de mal.
Vous n’avez pas trouvé la réponse que vous recherchez ?
mikegamer1
Messages postés40Date d'inscriptionmardi 31 juillet 2018StatutMembreDernière intervention19 février 2019 27 août 2018 à 01:52
Justement le problème est que j'ai voulu résoudre cela par les divisions et les modulos mais rien! Je ne trouvais pas d'idée.
Merci si vous pouvez un peu m'orienter!
En mélangeant les deux, tu peux obtenir ce que tu veux.
Un modulo pour le chiffre de droite.
Des divisions (boucle) + un modulo pour le chiffre de gauche.