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

[Résolu/Fermé]
Signaler
Messages postés
228
Date d'inscription
vendredi 31 juillet 2015
Statut
Membre
Dernière intervention
24 février 2017
-
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
-
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
}

3 réponses

Messages postés
14818
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 août 2021
297
x*x ne passe pas ?
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
228
Date d'inscription
vendredi 31 juillet 2015
Statut
Membre
Dernière intervention
24 février 2017

Ah oui, ça peut marcher merci!
Messages postés
18253
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
27 août 2021
5 343
hello
il y a
double pow(double x, double y)
pour élever x à la puissance y
Messages postés
228
Date d'inscription
vendredi 31 juillet 2015
Statut
Membre
Dernière intervention
24 février 2017

Merci, je la connaissais pas!
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
953
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)
Messages postés
8554
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
610
Bonsoir,

Déjà Le main ne prends pas de fonctions, un return 0 a la fin et des accolades pour les boucles.

For(i=0;i<x;i++)
{
X=i*i + x
}
X=sqrt(x)
Pense a initialiser x avant
Messages postés
228
Date d'inscription
vendredi 31 juillet 2015
Statut
Membre
Dernière intervention
24 février 2017

Merci pour ta réponse.
En fait j'avais un autre code au milieu. Je n'ai pas bien recopié.
Alors il faut commencer par le carré, la somme et enfin le sqrt. Pourquoi n'est-il pas à l'intérieur de l'accolade ?
Messages postés
8554
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
610
parce que dans ta formule la racine n'est pas a chaque itération mais a la fin donc dans le code à la fin de la boucle

--