Algo faire sortir les chiffre d'un nombre

Fermé
nadal1991 Messages postés 268 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 2 octobre 2011 - 18 déc. 2008 à 00:00
achrefpascal Messages postés 1 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 19 décembre 2008 - 19 déc. 2008 à 11:48
Bonjour,
voila j'ai un petit probleme d'algorithmique ; alors j'ai un nombre avec n'importe quelle nombre de chiffre alors moi je voudrais faire sortir les chiffre de ce nombre un par un mais le probleme et que je n'arrive pas a trouver comment faire si on ne connait pas en avance le nombre de chiffre composant ce nombre , et tous ca sans utiliser les fonction , les chaine de caractere , '''''ca doit etre un type entier""

donc en tous je voulais savoir comment faire pour faire sortir les chiffre d'un nombre composé de n'importe quelle nombre de chiffre (sans fonction , sans chaine de caractere )

voila en tous c'est ca

merci beaucoup d'avance
A voir également:

4 réponses

Wardog Messages postés 389 Date d'inscription mercredi 5 octobre 2005 Statut Membre Dernière intervention 17 octobre 2009 159
18 déc. 2008 à 00:12
Bonsoir,

tu te fais une fonction pour trouver la longueur de ton nombre.
Prenons n = 5691
Tu fais
Tant que n est différent de 0 je divise n par 10 et j'incrémente i de 1
n = n /10
Soit
5691 /10 i = 0
569 /10 i = 1
56 /10 i = 2
5/10 i = 3
0 i = 4

et ton nombre est bien compose de 4 chiffres.


Par exemple avec n = 5691

int intlen(int n)
{
int i;

i=0;
if (n== 0)
return (1);
while (n != 0)
{
n /= 10;
i++;
}
return (i);
}


Pour extraire chaque chiffre, tu peux utiliser la division et/ou le modulo %
0
nadal1991 Messages postés 268 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 2 octobre 2011 11
18 déc. 2008 à 23:08
je reprend le post parceque je comprend toujours pas comment faire pour extraire les nombre d'un chiffre je connais la methode du "mod" et du "div" mais je ne sais pas comment la generaliser (en utilisant n "nombre de chiffre ") pour un nombre qui a 3 chifre je peux ,, 4 chifre aussi mais seulement si je sais le nombre de chiffre au debut du programme

donc si quelqun pouvait m'aider a comprendre comment generaliser cette methode de mod et div ca serai vraiment sympa


merci beaucoup d'avance
0
nadal1991 Messages postés 268 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 2 octobre 2011 11
18 déc. 2008 à 23:37
silvouplait une reponse
0
achrefpascal Messages postés 1 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 19 décembre 2008
19 déc. 2008 à 11:48
bonsoir,

tu peut convertir le nombre en chaine puis faire le traitement

program exercice;
uses wincrt;
var n,i:longint; ch:string;
begin
write('introduire un entier :' );
readln(n);
str(n,ch);
for i:= 1 to length(ch) do
writeln('ciffre',i,' = ',ch[i]);
end.
0