A voir également:
- Nombre miroir python
- Fonction miroir python - Meilleures réponses
- Algorithme miroir d un nombre - Meilleures réponses
- Valeur miroir d'un nombre ✓ - Forum - C
- Inverse d'un entier ✓ - Forum - Programmation
- Nombre pair python ✓ - Forum - Python
- Afficher nombre pair python ✓ - Forum - PHP
- Nombre cubique python - Forum - Python
4 réponses
fiddy
- Messages postés
- 11066
- Date d'inscription
- samedi 5 mai 2007
- Statut
- Contributeur
- Dernière intervention
- 18 octobre 2016
En y réfléchissant, il y a encore plus simple. Et à mon avis, c'est la façon attendue s'il s'agit d'un devoir.
PS : l'algo fonctionne pour les nombres positifs, à toi de voir si tu as besoin de l'adapter pour les nombres négatifs.
Cdlt,
Google is your friend
Je te laisse écrire le code ;-).
nombre : entier (choisi par l'utilisateur)
reste : entier (entre 0 et 9, unité)
resultat : le nombre miroir
Demander(nombre)
resultat <- 0
TantQue nombre > 0 Faire
reste <- nombre modulo 10
nombre <- nombre / 10
resultat <- resultat * 10 + reste
FinTantQue
Afficher(resultat)
PS : l'algo fonctionne pour les nombres positifs, à toi de voir si tu as besoin de l'adapter pour les nombres négatifs.
Cdlt,
Google is your friend
Sugel
- Messages postés
- 4068
- Date d'inscription
- jeudi 18 août 2011
- Statut
- Membre
- Dernière intervention
- 19 juin 2017
Houla.
ça vas pas être de la tarte.
En fait, en C, les nombres sont stoqués en binaires. Les nombres tels que nous les connaissons n'ont en fait pas réellement d'existence.
Le meilleure moyen de faire ça est en fait de stocker la chaine de caractères, qui est elle facilement inversable.
Un sujet très instructif ici:
https://stackoverflow.com/questions/784417/reversing-a-string-in-c
la méthode que je trouve la plus rigolote est celle-ci, traduite par mes soins:
------------------------------------------------------------------------------------
"La peur mène à la colère. La colère mène à la haine. Et la haine ... mène à la souffrance." - Yoda
ça vas pas être de la tarte.
En fait, en C, les nombres sont stoqués en binaires. Les nombres tels que nous les connaissons n'ont en fait pas réellement d'existence.
Le meilleure moyen de faire ça est en fait de stocker la chaine de caractères, qui est elle facilement inversable.
Un sujet très instructif ici:
https://stackoverflow.com/questions/784417/reversing-a-string-in-c
la méthode que je trouve la plus rigolote est celle-ci, traduite par mes soins:
#include <string.h> // pour strlen() // revoie l'inverse d'une chaine terminée par null void inplace_reverse(char * str) { if (str) { char * end = str + strlen(str) - 1; // inverse la valeur de deux variables données // XXX: échoue quand a et b font référence au même emplacement mémoire # define XOR_SWAP(a,b) do\ {\ a ^= b;\ b ^= a;\ a ^= b;\ } while (0) // avance vers l'intérieur de la chaine de caractère depuis les deux extrémités // inverse jusqu'à ce qu'on soit au milieu. while (str < end) { XOR_SWAP(*str, *end); str++; end--; } # undef XOR_SWAP } }
------------------------------------------------------------------------------------
"La peur mène à la colère. La colère mène à la haine. Et la haine ... mène à la souffrance." - Yoda
fiddy
- Messages postés
- 11066
- Date d'inscription
- samedi 5 mai 2007
- Statut
- Contributeur
- Dernière intervention
- 18 octobre 2016
Bonjour,
Ce n'est pas compliqué. Je te donne une méthode simple (ce n'est pas la seule).
Deux étapes :
Google is your friend
Ce n'est pas compliqué. Je te donne une méthode simple (ce n'est pas la seule).
Deux étapes :
Cdlt,
Je stocke le nombre dans un tableau de caractère (scanf).
Pour dernier caractère jusqu'au 1er Faire
Afficher caractère
FinPour
Google is your friend
Sugel
- Messages postés
- 4068
- Date d'inscription
- jeudi 18 août 2011
- Statut
- Membre
- Dernière intervention
- 19 juin 2017
hawi, toi tu les affiche juste :p
tu triche ;-)
(enfin, c'est plutôt moi qui me complique la vie, à penser un nombre en tant qu'entité binaire au lieu de penser ça comme une chaine de caractères)
tu triche ;-)
(enfin, c'est plutôt moi qui me complique la vie, à penser un nombre en tant qu'entité binaire au lieu de penser ça comme une chaine de caractères)
fiddy
- Messages postés
- 11066
- Date d'inscription
- samedi 5 mai 2007
- Statut
- Contributeur
- Dernière intervention
- 18 octobre 2016
Non, je ne triche pas. Je réponds à la consigne qui permet de lire un nombre et d'afficher sa valeur miroir ;-)))
Sinon, à la place d'afficher, il suffit juste de mettre dans une chaîne. Pas plus compliqué :-p.
Sinon, à la place d'afficher, il suffit juste de mettre dans une chaîne. Pas plus compliqué :-p.
mr_demonicon
- Messages postés
- 824
- Date d'inscription
- dimanche 20 juillet 2014
- Statut
- Membre
- Dernière intervention
- 9 avril 2016
il faut juste compter le nombre de chiffre (via scanf) puis les mettre chacun dans une variable et retourner l'ordre de ces variables si var1=2 , var2=5, var3=9 alors on mettra printf var 3 var 2 var1 etc
fiddy
- Messages postés
- 11066
- Date d'inscription
- samedi 5 mai 2007
- Statut
- Contributeur
- Dernière intervention
- 18 octobre 2016
Compter le nombre de chiffres via scanf ? Tu fais comment ? Ce n'est pas possible...
Ensuite stocker ça dans des variables, cela ne fonctionnera pas pour les grands nombres...
Ensuite stocker ça dans des variables, cela ne fonctionnera pas pour les grands nombres...
mr_demonicon
- Messages postés
- 824
- Date d'inscription
- dimanche 20 juillet 2014
- Statut
- Membre
- Dernière intervention
- 9 avril 2016
facon de parler je veux simplement les recuperer puis les stocker chacune dans mes variable mais bon comme il a mieux je prefer me taire (le C remonte a trop loin pour moi)
Sugel
- Messages postés
- 4068
- Date d'inscription
- jeudi 18 août 2011
- Statut
- Membre
- Dernière intervention
- 19 juin 2017
Faire simple ?
Je dirais plutôt que tu te complique la vie:
Stocker chaque nombre, c'est plutôt stocker chaque chiffre.
un octet suffit largement (char), et en faisant ça tu en utilise 4 fois plus !
c'est d'une part du gâchis, et d'autre part c'est beaucoup plus facile pour l'utilisateur d'entrer directement le nombre en entier et pour la console de l'interpréter comme une chaine de caractère.
Je dirais plutôt que tu te complique la vie:
Stocker chaque nombre, c'est plutôt stocker chaque chiffre.
un octet suffit largement (char), et en faisant ça tu en utilise 4 fois plus !
c'est d'une part du gâchis, et d'autre part c'est beaucoup plus facile pour l'utilisateur d'entrer directement le nombre en entier et pour la console de l'interpréter comme une chaine de caractère.
comme quoi il y a plein de moyens de le faire...