Puissances négatives en C avec boucles
Fermé
Vlàdmir
-
27 déc. 2009 à 13:28
XX3 Messages postés 5 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 20 novembre 2012 - 27 déc. 2009 à 14:29
XX3 Messages postés 5 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 20 novembre 2012 - 27 déc. 2009 à 14:29
A voir également:
- Les puissances negatives
- Puissances en c ✓ - Forum C
- Comment faire des puissances sur clavier ✓ - Forum Word
- Comment faire les puissances sur clavier ✓ - Forum Bureautique
- Heures négatives excel ✓ - Forum Excel
- Valeurs négatives liste ✓ - Forum Excel
2 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
27 déc. 2009 à 13:42
27 déc. 2009 à 13:42
je ne vois pas pourquoi ce code devrait marcher pour les puissances négatives...
c'est exactement le meme code que pour les positifs que tu as indiqué !
La définition a puissance n = a*a*a*...*a n fois n'est valable que pour les positifs.
Revois ta définition mathématique de la puissance.
D'autre part la définition que tu as n'a pas de sens non plus pour les nombres à virgules, p devrait être déclaré en tant qu'entier.
if (p>0) for (i=0; i<p; i++) { res=res*n; } else { for (i=0; i<p; i++) { res=res*n; } }
c'est exactement le meme code que pour les positifs que tu as indiqué !
La définition a puissance n = a*a*a*...*a n fois n'est valable que pour les positifs.
Revois ta définition mathématique de la puissance.
D'autre part la définition que tu as n'a pas de sens non plus pour les nombres à virgules, p devrait être déclaré en tant qu'entier.
XX3
Messages postés
5
Date d'inscription
dimanche 27 décembre 2009
Statut
Membre
Dernière intervention
20 novembre 2012
27 déc. 2009 à 14:29
27 déc. 2009 à 14:29
en fait tu mets deux faute grave: *1/res=res*i si la puissance negative!!!!!!!!!!!!
*02/la puissance tu l'as declare de type reel!
;en plus tu dois s'habituer a pa mettre tout ces parenthese: C ne le demande pas
si le block contient un seul instuction. enfin essaye toujours d'ameliorer l'affichage.
et voila la réponse
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main ()
{
float i, n, res=1;int p;
printf ("Saisissez un nombre: ");
scanf ("%f", &n);
printf ("Saisissez la puissance que vous voulez lui affecter \n");
scanf ("%d", &p);
if (p>0) for (i=0; i<p; i++) res=res*n;
else for (i=0; i<(-p); i++) res=res/n;
printf ("%10.3f^%d = %10.3f", n, p, res);
getch();
system ("pause");
return 0;
}
*02/la puissance tu l'as declare de type reel!
;en plus tu dois s'habituer a pa mettre tout ces parenthese: C ne le demande pas
si le block contient un seul instuction. enfin essaye toujours d'ameliorer l'affichage.
et voila la réponse
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main ()
{
float i, n, res=1;int p;
printf ("Saisissez un nombre: ");
scanf ("%f", &n);
printf ("Saisissez la puissance que vous voulez lui affecter \n");
scanf ("%d", &p);
if (p>0) for (i=0; i<p; i++) res=res*n;
else for (i=0; i<(-p); i++) res=res/n;
printf ("%10.3f^%d = %10.3f", n, p, res);
getch();
system ("pause");
return 0;
}