Existe-t-il une fonction carré(x) en C ?

Résolu/Fermé
geekat Messages postés 228 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 24 février 2017 - 24 déc. 2015 à 23:41
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 26 déc. 2015 à 19:03
Bonjour,
Il en existe pour racine carrée c'est le sqrt, mais pour le carré je n'en ai pas trouvé.
Je voudrais écrire cette fonction :

Mon code :
#include <stdlib.h>    
#include <stdio.h>    
#include <math.h>
int main(int argc, char *argv[])
{
for (i=0; i<=n; i++)
    int x = sqrt(x);           // Je ne sais pas comment continuer
}
A voir également:

3 réponses

dubcek Messages postés 18577 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 12 janvier 2023 5 579
25 déc. 2015 à 08:19
hello
il y a
double pow(double x, double y)
pour élever x à la puissance y
4
geekat Messages postés 228 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 24 février 2017
25 déc. 2015 à 19:42
Merci, je la connaissais pas!
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 948
Modifié par jisisv le 26/12/2015 à 19:07
Il n'y a a AUCUN intérêt à utiliser pow et Cie pour un carré.
Il est nettement plus efficace d'utiliser le produit de l'entité (de préférence une variable simple) par elle-même. En général toutes les élévations à des puissances entières se résolvent en une boucle simple et des carrés, cela grâce à Horner.
L'utilisation de pow dans ce contexte est inefficace.
A la limite on peut se définir une macro pour le carré:
#define square(a)  (a)*(a)

ou pour le cube éventuellement..

Laissons à pow([lf] leur usage: élévation d'une entité à une puissance non entière et différente de 1/2 (auquel cas sqrt sera plus efficace)
1