Erreur "error: conflicting types for" en C.

Résolu
Bob4294967296 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai envie de me faire un programme en C en utilisant des factorielles MAIS y'a une erreur que je n'arrive pas à déceler:
#include <stdio.h>
#include <stdlib.h>


int main()
{
    double proba = factorielle(10.000);
    printf("%lf", proba);
    return EXIT_SUCCESS;
}

double factorielle(double n)
{
    double resultat = 1.000;
    double i;
    for (i = 1.0000; i <= n; i++)
    {
        resultat = resultat * i;
    }
    return resultat;
}


J'ai tout essayé mais rien ne veut marcher ;(

Merci pour votre aide.
A voir également:

3 réponses

carbon6 Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   41
 
Bonjour,

Tu dois déclarer ta fonction factorielle avant de l'appeler.

cdt.
5
Bob4294967296 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   25
 
Ah oui, c'est vrai!!
Punaise, j'ai totalement oublié :)

Merci bien. Problème résolu.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Je pense que i++ ne marche pas avec des double. Essaye i+=1.

Remarque : tu n'as pas besoin de mettre quinze 0, le fait d'indiquer que le type est un double est suffisant.
De plus, même si avec des doubles tu augmentes l'amplitude de tes valeurs, tu ne pourras de toute façon pas atteindre de très grandes valeurs de n (170 maximum)La confiance n'exclut pas le contrôle
0
Bob4294967296 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   25
 
Merci pour ta réponse mais même en remplaçant i++ par i+=1, rien n'y fait... J'ai la même erreur...
Sinon pour le coup des zéros inutiles, merci du tuyau. Je ferai attention la prochaine fois.
0
Bob4294967296 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   25
 
En plus, le pire, c'est quand je change le type de ma fonction factorielle en int, ça marche bien (sauf que dès que n>15, il affiche une valeur négative erronée...)
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
C'est normal, il y a des débordements de mémoire quand tu dépasses 2^31.
La factorielle montre très rapidement en valeur, et en trouver de très grandes valeurs demande quelques concessions sur leur précisions.
0