Algo faire sortir les chiffre d'un nombre

nadal1991 Messages postés 280 Statut Membre -  
achrefpascal Messages postés 1 Statut Membre -
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 398 Statut Membre 159
 
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 280 Statut Membre 11
 
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 280 Statut Membre 11
 
silvouplait une reponse
0
achrefpascal Messages postés 1 Statut Membre
 
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