Décomposition d'un nombre en C

Signaler
Messages postés
52
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
5 juin 2007
-
Messages postés
28
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
13 mars 2012
-
Bonjour,
je dois traduire en C le tri par base.
Pour cela, je dois classer des chiffres par les unités, puis les dizaines, etc...
Mon problème est le suivant:
Comment faire pour isoler le chiffre des unités dans un nombre en C?
par exemple: si on a 170, comment faire pour avoir 0? Existe-t-il une fonction?
Merci d'avance

5 réponses

Messages postés
28
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
13 mars 2012

Si tu fais :
do
{
170 % 10 => 0 pour l'unité puis
170 / 10 => 17 puis
17 % 10 => 7 pour la dizaine etc ...
Messages postés
52
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
5 juin 2007

ok mais comment savoir sur combien de chiffre les valeurs à trier sont-elles représentées?
Messages postés
28
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
13 mars 2012

tu fais une boucle do while et tu sors quand ton nombre divisé par 10 egal 0
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

Bonjour,



Une suite de sprintf, strlen et atoi devrait faire l'affaire non ?

Matt...
Messages postés
28
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
13 mars 2012

oui exact j'y avait pas pensé dans la série pourquoi faire simple quand on peux faire compliqué

sprintf( Buffer, %d, Nombre );
taille = strlen( Buffer );
on traite les caractères obtenus avec un for et la taille récupéré par exemple en les retransformant avec :
chiffre = atoi( caractère );