N à la puissance P
Vlàdmir
-
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, je veux élever le nombre "n" à la puissance "p" mai mon résulta est faux. Pourquoi, s'il vous plait?
#include<stdio.h>
#include<stdlib.h>
int main ()
{
long double i, n, p, res=n;
printf ("Entrez un nombre");
scanf ("%lf", &n);
printf ("Enrez la puissance que vous voulez lui affecter");
scanf ("%lf", &n);
for (i=0; i>p; i++)
{
res=res*n;
}
printf ("Le resultat est: %lf", res);
system ("pause");
return 0;
}
Merci, d'avance!
#include<stdio.h>
#include<stdlib.h>
int main ()
{
long double i, n, p, res=n;
printf ("Entrez un nombre");
scanf ("%lf", &n);
printf ("Enrez la puissance que vous voulez lui affecter");
scanf ("%lf", &n);
for (i=0; i>p; i++)
{
res=res*n;
}
printf ("Le resultat est: %lf", res);
system ("pause");
return 0;
}
Merci, d'avance!
A voir également:
- N à la puissance P
- Test puissance pc - Guide
- Puissance en c ✓ - Forum C
- &Quot;pow " pour calculer la puissance en C - Forum C
- Puissance signal wifi - Guide
- Mkdir - p signification ✓ - Forum Linux / Unix
4 réponses
printf ("Enrez la puissance que vous voulez lui affecter");
scanf ("%lf", &n);
tu as remis &n alors que ça devrait etre &p !
scanf ("%lf", &n);
tu as remis &n alors que ça devrait etre &p !
Bonjour,
Voilà d'une part une puissance n'est jamais à virgule donc t'a variable p ne peut pas être un double mais juste un int.
Dans le même sens ton nombre n doit être un int et non un double.
Encore autre chose essaye de remplacer return 0; par return EXIT_SUCCESS; sa fait un peu plus pro (sa donne toujours l'impression que l'on si connait devant les autres que de marquer 0 c'est juste histoire de ce faire voir je te rassure que cela ne sert strictement a rien;-)
sinon je suis en train de voir. tu essaye d'affecter une variable a une autre variable en ensuite de multiplier cette variable par elle même ?
Un conseil : déjà aère un peu plus ton code (en sautant des lignes avant la fin de ta fonction et juste après le début de ta fonction
int main()
{
/* tu saute une ligne */
/* ton code */
/* tu re-saute une ligne */
}
/* et la c'est obligatoire tu saute au moins une ligne voir un peu plus sinon cela risque de causer de très gros problème à la compilation.*/
encore autre chose essaye en c++ et aussi une librairie existe spécifique au math qui s'appelle devine bien math.h ou maths.h je ne sait plus exactement.
Je regarde sa de mon coté et je poste la réponse au problème en C++ surement.
Bonne chance.
Voilà d'une part une puissance n'est jamais à virgule donc t'a variable p ne peut pas être un double mais juste un int.
Dans le même sens ton nombre n doit être un int et non un double.
Encore autre chose essaye de remplacer return 0; par return EXIT_SUCCESS; sa fait un peu plus pro (sa donne toujours l'impression que l'on si connait devant les autres que de marquer 0 c'est juste histoire de ce faire voir je te rassure que cela ne sert strictement a rien;-)
sinon je suis en train de voir. tu essaye d'affecter une variable a une autre variable en ensuite de multiplier cette variable par elle même ?
Un conseil : déjà aère un peu plus ton code (en sautant des lignes avant la fin de ta fonction et juste après le début de ta fonction
int main()
{
/* tu saute une ligne */
/* ton code */
/* tu re-saute une ligne */
}
/* et la c'est obligatoire tu saute au moins une ligne voir un peu plus sinon cela risque de causer de très gros problème à la compilation.*/
encore autre chose essaye en c++ et aussi une librairie existe spécifique au math qui s'appelle devine bien math.h ou maths.h je ne sait plus exactement.
Je regarde sa de mon coté et je poste la réponse au problème en C++ surement.
Bonne chance.
deja g revien pas sur ce qui les erreurs ki ont relevé mai y'en a une tres grosse qui reste et ce celleci
for (i=0; i>p; i++)
ce qui voudra dire ke soit tu cherche a calculer par des puissance negatives: seule pour i = 0 detre plus grand que p. ou sinon c 'est une erreur et tu me la corrige en mettant i < p et les problemes par les autres avant moi.
for (i=0; i>p; i++)
ce qui voudra dire ke soit tu cherche a calculer par des puissance negatives: seule pour i = 0 detre plus grand que p. ou sinon c 'est une erreur et tu me la corrige en mettant i < p et les problemes par les autres avant moi.
Salut,
Pas mal d'erreurs.
int main ()
C'est int main(void) qu'il vaut mieux mettre.
long double i, n, p, res=n;
Tu définis tes variables comme des long double alors que tu les traites comme des double dans tes scanf.
Donc par exemple, tu peux définir juste tes variables en double et non en long double (ce que je vais considérer ici) ou alors tu modifies le format de tes scanf et printf.
De plus, tu as mis res=n, mais comme n n'est pas initialisée, res ne contiendra pas une valeur exploitable. Pour la puissance, il faut initialiser res à 1 tout simplement.
printf ("Enrez la puissance que vous voulez lui affecter");
scanf ("%lf", &n);
Tu voulais probablement mettre scanf("%lf",&p); sinon tu écrases la précédente valeur
for (i=0; i>p; i++)
i<p est la bonne condition et non i>p (comme dit dans ton autre post).
printf ("Le resultat est: %lf", res);
Si res est un double, il faut mettre %f et non %lf
system ("pause");
Attention, ce n'est pas portable.
Et enfin, un petit conseil : tu devras mettre la boucle for dans une fonction intitulée puissance, cela rendrait le code plus propre et tu pourrais réutiliser cette fonction par la suite.
Si t'as des questions, n'hésite pas.
Cdlt
Pas mal d'erreurs.
int main ()
C'est int main(void) qu'il vaut mieux mettre.
long double i, n, p, res=n;
Tu définis tes variables comme des long double alors que tu les traites comme des double dans tes scanf.
Donc par exemple, tu peux définir juste tes variables en double et non en long double (ce que je vais considérer ici) ou alors tu modifies le format de tes scanf et printf.
De plus, tu as mis res=n, mais comme n n'est pas initialisée, res ne contiendra pas une valeur exploitable. Pour la puissance, il faut initialiser res à 1 tout simplement.
printf ("Enrez la puissance que vous voulez lui affecter");
scanf ("%lf", &n);
Tu voulais probablement mettre scanf("%lf",&p); sinon tu écrases la précédente valeur
for (i=0; i>p; i++)
i<p est la bonne condition et non i>p (comme dit dans ton autre post).
printf ("Le resultat est: %lf", res);
Si res est un double, il faut mettre %f et non %lf
system ("pause");
Attention, ce n'est pas portable.
Et enfin, un petit conseil : tu devras mettre la boucle for dans une fonction intitulée puissance, cela rendrait le code plus propre et tu pourrais réutiliser cette fonction par la suite.
Si t'as des questions, n'hésite pas.
Cdlt