Accueil > Forum > > > > Comparer deux nombres
Comparer deux nombres
samedi 22 novembre 2008 à 19:33:13 |
Comparer deux nombres

alexey27
|
Bonsoir je debute en C++ donc j'aurai besoin d'un peu d'aide au niveau d'un programme que je dois faire. Le programme doit demander a l'utilisateur d'entrer deux nombres, puis celui-ci doit affciher le nombre de chiffres communs a ces deux nombres. Par exemple pour 1789 et 17 le programme affichera 2. Or je ne sais pas comment m'y prendre pour decomposer les nombres en chiffres, je ne doit pas utiliser les chaines de caracteres car je me l'ai pas encore appris. Si quelqu'un sait comment s'y prendre ? Merci d'avamce .
|
|
lundi 24 novembre 2008 à 13:44:17 |
Re : Comparer deux nombres

uaip
|
Je ne vais pas te faire le code, mais voilà la méthode : - modulo 10 de chacun de tes nombres pour récupérer un seul chiffre - comparaison des 2 modulos, si égal, tu incrémentes une variable - tu divise tes nombres par 10 - tu boucles tout ça jusqu'à ce que l'un de tes nombres ne soit égal à 0
Cordialement, uaip.
|
|
lundi 24 novembre 2008 à 18:13:21 |
Re : Comparer deux nombres

alexey27
|
Merci pour la reponse. J'ai a peu pres compris la methode mais le modulo corespond a quoi exactement ?
|
|
lundi 24 novembre 2008 à 18:49:18 |
Re : Comparer deux nombres

Pistol_Pete
|
Salut Le modulo est le reste de la division Euclidienne: 1789%10 te donnera 9. A+ ________________________________________________________________________________ Mon site internet : [ Lien ]
|
|
lundi 24 novembre 2008 à 18:57:04 |
Re : Comparer deux nombres

uaip
|
Exemple pas à pas avec une variable : variable = 193 (type entier) 193 modulo 10 = 3 -> tu récupères le 3 193 divisé par 10 = 179 (puisque c'est du type entier) 19 modulo 10 = 9 -> tu récupères le 9 19 divisé par 10 = 1 1 modulo 10 = 1 -> tu récupères le 1 1 / 10 = 0 variable = 0 -> fin des tests
On note que tu as pu anayler ton nombre (179) chiffre par chiffre (3, 9 puis 1), donc il suffit de faire pareil avec ton 2ème nombre, en les comparant chiffre à chiffre : une boucle suffit, en s'arrêtant quand l'un des 2 nombres est égal à 0. Allez, tu as tout, là. Bon codage :)
Cordialement, uaip.
|
|
lundi 24 novembre 2008 à 18:59:28 |
Re : Comparer deux nombres

uaip
|
Oups, je me suis mal relu  "193 divisé par 10 = 19 (puisque c'est du type entier)" et "On note que tu as pu anayler ton nombre ( 193) chiffre par chiffre (3, 9 puis 1)" Désolé pour le double posting... Cordialement, uaip.
|
|
lundi 24 novembre 2008 à 19:09:28 |
Re : Comparer deux nombres

alexey27
|
Merci beaucoup a toi !!! Bravo pour la technique. ++
|
|
mercredi 26 novembre 2008 à 19:43:05 |
Re : Comparer deux nombres

alexey27
|
Excusez moi de solliciter encore votre aide mais voici ce que j'ai fait:
#include <iostream> using std::cout; using std::cin; using std::endl; int main () { int num1,num2,a,b; int nbr=0; cout<<"num1"<<endl; cin>>num1; cout<<"num2"<<endl; cin>>num2; while (a!=0) { a=num1%10; num1=num1/10; while (b!=0) { b=num2%10; num2=num2/10; if (a==b) { nbr++; break; } } } cout<<nbr<<endl; b=-1; return 0; } Le programme doit comparer les chiffres du nombre 1 avec les chiffres du nombre 2. Le probleme est que mon programme ne fonctionne pas correctement, j'ai beau le retourner dans tous les sens je ne trouve pas le probleme. Si quelqu'un peut m'aider? Merci
|
|
mercredi 26 novembre 2008 à 20:52:08 |
Re : Comparer deux nombres

uaip
|
Dès ton premier passage dans la deuxième boucle, tu divises num2 jusqu'à obtenir 0. Ce qui fait qu'en arrivant au deuxième passage (donc 2ème chiffre de num1), num2 vaudra forcément 0. Garde num1 et num2 à part. Copie les dans d'autres variables que tu pourras diviser sans détériorer les nombres de départ.
Ah et aussi, ton algo n'est pas bon. Tu as dit que tu voulais savoir combien il y avait de chiffres communs entre 2 nombres. Donc logiquement, vu qu'il n'y a que 10 chiffres, il ne peut pas y avoir plus de 10 chiffres communs. Or toi tu compares chaque chiffre de num1 avec chaque chiffre de num2. Donc en gros si num1 = num2 = 12345678901234567890 tu obtiendras 20.
PS : Fais aussi un effort sur l'indentation, c'est pas trop lisible, là Et using std::cout; using std::cin; using std::endl; Tu peux le résumer en ceci : using namespace std;
Cordialement, uaip.
|
|
mercredi 26 novembre 2008 à 21:10:23 |
Re : Comparer deux nombres

uaip
|
J'ai oublié de préciser une autre erreur de ton algo. Dans tes boucles, ce n'est pas le chiffre récupéré qu'il faut vérifier (a ou b) mais le restant du nombre. J'ai refait l'exo, ça marche chez moi. Si je ne me suis pas trompé (par rapport au post précédent), n'hésite pas  Si j'ai bien compris, "22" et "2" retourne 1 (et non 2 avec ton algo). Bonne chance. Cordialement, uaip.
|
|
Cette discussion est classée dans : programme, comparer, prendre, chiffres, nombres
Répondre à ce message
Sujets en rapport avec ce message
Probleme sur un programme qui calcule un pgcd [ par El loco ]
Voila j ai un probleme sur le programme suivant, il marche correctement avec une grande serie de nombres mais quand je tape 15 et 32 il me donne un pg
Programme avec Builder C++ [ par Kyzand ]
j'ai un programme a faire mais je suis bloquéje le lis''Un nombre Armstrong est défini comme étant un nombre de n chiffres dont la somme des puissance
Programme sur les nombres complexes [ par martoun ]
[bleu]Bonjour, j'suis un débutant en programmation et j'aimerais créer un programme qui permette de faire des opérations sur plusieurs nombres complex
Programme sur les nombres entiers [ par K20 ]
Bonjour tout le monde ! Je suis nouveau ici et j'ai un problème avec un programme en C++ ... j'utilise Dev C++ 3.0. J'ai fait un programme qui permet
Problème avec les nombres aléatoires [ par nisaloncaje ]
Bonjour, j'ai un petit problème : dans un programme , pour générer un nombre aléatoire je fais ceci : int n,max=50,liste[15];for(i=0;isrand(time(0));
Suite [ par telecomakram ]
bonjour,J'ai passer environ 4 heures a la recherche d une solution mais j ai pas trouver qlq'un peu m'aider s il vous plaîtmerci-------On s'intéresse
générateur de loi normale [ par deubelte ]
bonjourje recherche un générateur de flots de chiffres ayant une répartition normale N(0,1) en C/C++.Ou pourrais-je trouver un tel programme. Je veux
somme et multiplication de tres grands nombres en c [ par sarah000c ]
slt tt lmonde, je cherche un programme qui calcule la somme et la multiplication de tré grands nombres en language c ,veuillez m'aider c vraiment urge
programme nombres premiers [ par I0o0I ]
Bonjour, j ai une question pour un programme plutot math mais la question est pas math du tout... c est surement très facile a résoudre. En gros j a
calculer la somme des chiffres d'un nombre donné - NTL et nombres ZZ [ par scelw ]
Je dois faire un exercice.Sachant que c'est pour travailler avec des très grands nombres (de plusieurs millions de chiffres), il faut utiliser la clas
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|