Affichage du premier nombre et du dernier nombre d'un entier [Résolu]

mikegamer1 23 Messages postés mardi 31 juillet 2018Date d'inscription 12 septembre 2018 Dernière intervention - 26 août 2018 à 09:56 - Dernière réponse : cptpingu 3807 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 21 septembre 2018 Dernière intervention
- 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

Ou encore:


Aidez moi à trouvez la faille svp.



Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
jordane45 22520 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 septembre 2018 Dernière intervention - Modifié par jordane45 le 26/08/2018 à 13:10
1
Merci
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
d=chaine[taille];

Regarde donc ici pour comprendre :
https://theasciicode.com.ar/

Cordialement, 
Jordane                                                                 

Merci jordane45 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de jordane45
Meilleure réponse
cptpingu 3807 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 21 septembre 2018 Dernière intervention - Modifié par cptpingu le 26/08/2018 à 16:27
1
Merci
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.


Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature

Merci cptpingu 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de cptpingu
Meilleure réponse
jordane45 22520 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 septembre 2018 Dernière intervention - Modifié par jordane45 le 26/08/2018 à 17:00
1
Merci

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 ??

JordanE

Merci jordane45 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de jordane45
Meilleure réponse
cptpingu 3807 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 21 septembre 2018 Dernière intervention - 26 août 2018 à 23:05
1
Merci
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.

Merci cptpingu 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de cptpingu
mikegamer1 23 Messages postés mardi 31 juillet 2018Date d'inscription 12 septembre 2018 Dernière intervention - 26 août 2018 à 13:08
0
Merci
Merci
Commenter la réponse de mikegamer1
mikegamer1 23 Messages postés mardi 31 juillet 2018Date d'inscription 12 septembre 2018 Dernière intervention - 27 août 2018 à 01:52
0
Merci
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!
Commenter la réponse de mikegamer1
cptpingu 3807 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 21 septembre 2018 Dernière intervention - 27 août 2018 à 12:09
0
Merci
Le modulo (reste de la division) te permet de garder les chiffres de droite.
Ex: 12345
12345 % 10 => 5
12345 % 100 => 45
12345 % 1000 => 345


La division entière (les chiffres après la virgule ne sont pas gardés), te permet de supprimer les chiffres de droite.
Ex: 12345
12345 / 10 => 1234
12345 / 100 =>123
12345 / 1000 => 12


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.
Commenter la réponse de cptpingu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.