Programeation d'une type de puissance

awalle
Messages postés
16
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
28 juin 2007
- 24 mai 2007 à 18:54
The_Guardian
Messages postés
317
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2007
- 26 mai 2007 à 10:30
bon soir à tout le monde





j'ai un problème de la fonction puissance en langage C. Mon problème
est le faite que, je veux programmer en langage C, une fonction qui calcule y^n/2, avec n un entier pas paire ET y un double.


merci mes fréres pour l'aide.

5 réponses

THEwarrior333
Messages postés
192
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
30 janvier 2008

24 mai 2007 à 19:59
essayes pow(a, b) de math.h

avec b la puissance.
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
25 mai 2007 à 07:14
Salut,
faut verifier y strictement positif sinon ca va te renvoyer NaN si n n'est pas paire
0
awalle
Messages postés
16
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
28 juin 2007

25 mai 2007 à 11:28
<meta http-equiv= "Content-Type" content="text/html; charset=UTF-8" />
<meta name="Generator" content="Kate, the KDE Advanced Text Editor" />



merci bc à vos répenses, j'ai réflichi bien à cette fonction "pow"mais j'ai pas de bon résultat.
voilà mon programme;

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

//#include"init.h"

double fac(int valeur_depart)
{
int valeur;
double factoriel;

factoriel = 1;
valeur = valeur_depart;
while (1)
{ if (valeur < = 1)
break;
factoriel = factoriel * valeur;
valeur--;
} if (valeur_depart 0) factoriel 1;

return factoriel;
}

/*double puissance(double a,float n){ if(n == 0) return(1); return (a*puissance(a,n-1));}*/
main()
{
int n =3,m= 1;
// FILE *bess; double v,x =1/2,u;
u=cos(x);
v=fac(2*m-1)*pow(sqrt(1-x*x),n);

printf("v= %lf\n",v);

}
----------------------------------
la répense est === 1;
------------------------------------
0
awalle
Messages postés
16
Date d'inscription
mardi 24 avril 2007
Statut
Membre
Dernière intervention
28 juin 2007

25 mai 2007 à 12:42
 pardon je vois que mon message n'est pas claire, alors le le refait:

<meta http-equiv= "Content-Type" content="text/html; charset=UTF-8" /><meta name="Generator" content="Kate, the KDE Advanced Text Editor" />#include<stdio.h>#include<math.h>#include<stdlib.h> //#include"init.h" double fac(int valeur_depart)
{
int valeur;
double factoriel;


factoriel = 1;
valeur = valeur_depart;
while (1)
{ if (valeur < = 1)
break;
factoriel = factoriel * valeur;
valeur--;
}
if (valeur_depart 0) factoriel 1;

return factoriel;
}


int main()
{
int n =3,m=1;
// FILE *bess; double v,x =1/2,u;
u=cos(x);
v=fac(2*m-1)*pow(8./5,n);

printf("v= %lf\n",v);

}

j'ais un problème de résultat c'est 1.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
The_Guardian
Messages postés
317
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2007

26 mai 2007 à 10:30
Salut,

Ton code est un peu dur a lire, tu as du avoir un probleme quand tu l'as copie-colle.

Je ne vois pas ou tu calcules y^n/2 aussi donc l'explication ne colle pas vraiment au code que tu mets, mais bon
Ton probleme c'est que la reponse retournee par le main est 1 alors que ca devrait pas ?
_donc essaye deja de voir si sqrt(1-x*x) te renvoie bien la valeur voulue puis essaye de voir si y'a pas un probleme
de conversion en int qui se cache.
Et finalement, verifie ton printf
(%lf c'est pour les doubles ? tu es sur ?)

__ au passage, pour le moment, l'initialisation de x est en commentaires__

=
0