Diviseur par 2

Résolu/Fermé
Blackleoh Messages postés 3 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 2 avril 2014 - Modifié par Blackleoh le 2/04/2014 à 00:03
Blackleoh Messages postés 3 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 2 avril 2014 - 2 avril 2014 à 17:05
Bonjour,

#include <stdio.h>
#include <stdlib.h>

int main (void)

{
int i = 0;
int d = 0;
int n = 0;

for (i=2; i<=50; i+=2)

if (i%2 == 0)

{

d = i/2;
n = d/2;

printf("%d = %d = %d\n",i,d,n);

}

return 0;

}

Voilà, pas de quoi casser des briques. Ça reflète mon niveau de programmation. Je voudrais néanmoins aller un peu plus loin sans savoir comment faire. En fait, le but de mon programme serait de diviser les nombres pairs par 2. Jusque là ça va. Ceci dit, je voudrais aussi diviser les résultats qui ont un nombre pair par 2 jusqu'à ce que chaque résultat affiche un nombre impair sans jamais diviser un nombre impair et là je bloque. J'ai essayé de jouer avec les conditions, pointeurs et fonctions, en vain. Une idée ?
A voir également:

1 réponse

Blackleoh Messages postés 3 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 2 avril 2014
2 avril 2014 à 01:46
C'est bon, j'ai trouvé la soluce.

#include <stdio.h>
#include <stdlib.h>

int main (int argc, char const *argv[])

{
int i,d,n = 0;

for (i=2; i<=50; i+=2)

{

n=i;

while (n%2==0) n/=2;

printf("%d = %d = %d\n",i,n,d);

}

return 0;

}


Ceci dit, je me demande comment afficher le nombre de fois que j'ai divisé par 2 par nombre?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
2 avril 2014 à 07:33
En faisant un compteur. Tu incrémentes de 1 dans chaque itération de ton While
0
Blackleoh Messages postés 3 Date d'inscription mardi 1 avril 2014 Statut Membre Dernière intervention 2 avril 2014
2 avril 2014 à 17:05
Merci.
0