Puissance de 2 en C
Résolu
kimimsc
Messages postés
176
Statut
Membre
-
Nabla's Messages postés 20731 Statut Contributeur -
Nabla's Messages postés 20731 Statut Contributeur -
Bonsoir, je suis entrain de faire les exos sur france ioi voilà la consigne :
Écrivez un programme qui lit un entier et affiche la valeur de la plus grande puissance de 2 qui soit inférieure ou égale à ce nombre.
par exemple je tape 9 le programme dois me renvoyer 8 car 2^3=8
Voilà ce que j'ai fais :
si je tape 9 j'obtiens 1
C'est quoi mon erreur?
--
"Deux choses sont infinies: l'univers et la bêtise humaine, en ce qui concerne l'univers, je n'en ai pas acquis la certitude absolue." A.EINSTEIN
Écrivez un programme qui lit un entier et affiche la valeur de la plus grande puissance de 2 qui soit inférieure ou égale à ce nombre.
par exemple je tape 9 le programme dois me renvoyer 8 car 2^3=8
Voilà ce que j'ai fais :
#include <stdio.h>
#include <math.h>
int main()
{
int N=0,i=0,resultat=0;
scanf("%d",&N);
do
{
resultat=pow(2,i);
i++;
}
while(resultat>N);
if(resultat>N)
{
do
{
resultat=pow(2,i);
i--;
}
while(resultat<=N);
}
printf("%d",resultat);
return 0;
}
si je tape 9 j'obtiens 1
C'est quoi mon erreur?
--
"Deux choses sont infinies: l'univers et la bêtise humaine, en ce qui concerne l'univers, je n'en ai pas acquis la certitude absolue." A.EINSTEIN
Configuration: Windows Vista Firefox 3.5.3
A voir également:
- C puissance 2
- Test puissance pc - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Puissance signal wifi - Guide
- Faire 2 colonnes sur word - Guide
- 2 écrans - Guide
3 réponses
KONNICHIWA,
c'est normal qu'il t'affiche toujours 1 !!
tu as trompé dans le sens des signes sup & inf.
bon voila la correction :
c'est normal qu'il t'affiche toujours 1 !!
tu as trompé dans le sens des signes sup & inf.
bon voila la correction :
#include <stdio.h>
#include <math.h>
int main()
{
int N=0,i=0,resultat=0;
scanf("%d",&N);
do
{
resultat=pow(2,i);
i++;
}
while(resultat<N);
if(resultat>N)
{
do
{
resultat=pow(2,i);
i--;
}
while(resultat>=N);
}
printf("%d",resultat);
return 0;
}
en effet, de erreurs très grosses, on en fait tout le temps. Et comme tu te dis inconsciemment "c'est pas possible que je me sois gourré là dessus", et ben tu ne trouves pas...
souvent, tu verra qeu c'est en expliquant à quelqu'un ce que fait otn code que tu trouvera toi même ton erreur !
bon courrage
souvent, tu verra qeu c'est en expliquant à quelqu'un ce que fait otn code que tu trouvera toi même ton erreur !
bon courrage