IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

problem d'�xecution "Multiplication Russe"


Sujet :

Visual C++

  1. #1
    Membre r�gulier
    Inscrit en
    Octobre 2008
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par d�faut problem d'�xecution "Multiplication Russe"
    mon travail me semble, il me signale aucune erreur, 0 error, 0 warning,
    je travail sur visual C++ 6.0.

    � l'ex�cution, il me demande de taper les Variable A et B, apr�s, retour a la ligne sans rien faire,

    mon travail est le suivant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #include "stdafx.h"
    #include<stdio.h>
    
    int main()
    {
    
    	int A, B, R,v1,v2;
    
    	
    	    printf("Donnez A : ");
    	    scanf("%d", &A);
    	    printf("Donnez B : ");
    	    scanf("%d", &B);
    
    
           
    	 R = 0;
    	 v1 = A;
             v2 = B;
    
         do 
    	 {
    		 if ((v1%2) != 0 ) 
    		 {
    			 R  = R + v2;
    			 v1 = v1 / 2;
    			 v2 = v2 * 2;
    		 }
         }while(v1 != 1);
    		 
    		 R = R + v2;
    		 printf("le resultat est : %d", R);
    
    		  return 0;
    }

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Si v1 est pair, ta boucle while ne se terminera jamais...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre r�gulier
    Inscrit en
    Octobre 2008
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par d�faut
    non, mais le probl�me que il me demande de taper A et B, apr�s il ne fait Rien

  4. #4
    Membre r�gulier
    Inscrit en
    Octobre 2008
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par d�faut
    je viens de refaire le travail avec un tableau, toujours le m�me probl�me
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #include "stdafx.h"
    #include<stdio.h>
     
    int main(int argc, char* argv[])
    {
     
    	 int T[1],i,R,v1,v2;
     
     
     
               for(i=0;i<=1;i++)
    		   {
                printf("T[%i] = ",i);
                scanf("%i", &T[i]);
    		   }
     
    		R = 0;
    	    v1 = T[0];
            v2 = T[1];
     
         while(v1 != 1) 
    	 {
    		 if ((v1%2) != 0 ) 
    		 {
    			 R  = R + v2;
    			 v1 = v1 / 2;
    			 v2 = v2 * 2;
    		 }
         }
     
    		 R = R + v2;
    		 printf("le resultat est : %i ", R);
     
    		  return 0;
    }

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Mais c'est bien ce que je dis: Si tu tapes un A pair, le programme part en boucle infinie et donc, "plante".
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int T[1],i,R,v1,v2;
     
     
     
               for(i=0;i<=1;i++)
    		   {
                printf("T[%i] = ",i);
                scanf("%i", &T[i]);
    		   }
    Tu vas en plus avoir un probl�me quand ton indice i vaudra 1! Ton tableau est d�clar� comme T[1], donc une seule case: T[0]. T[1]=d�bordement
    Citation Envoy� par Medinoc
    Mais c'est bien ce que je dis: Si tu tapes un A pair, le programme part en boucle infinie et donc, "plante".
    Il a doublement raison. Si A est pair, tu ne modifie jamais V1, donc v1 restera ind�finiment diff�rent de 1! De m�me, si tu saisis 1 pour A, alors d�s le premier calcul, V1 vaudra 0, ce qui est diff�rent de 1->encore une boucle infinie!
    Peux-tu expliquer ce que tu cherche � calculer?

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo