Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Comparer deux nombres [ Divers / Débutant(e) ] (alexey27)

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.


1 2

Cette discussion est classé 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 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 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 Comparer des suites de caracteres [ par alexey27 ] Bonjour je dois realiser un programme qui demande a l'utilisateur d'entrer une ligne de caracteres. Le programme devra lire les données entrées par l'


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.