IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Fonction max avec float


Sujet :

C

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 171
    Points : 55
    Points
    55
    Par défaut Fonction max avec float
    Salut, je fais surement une erreur de debutant mais j'arrive pas a me corriger.

    Je veux simplement faire une fonction qui retourne la plus grande valeur entre deux variables de type float:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    float max(float a, float b){
    	float r;
    	r=b;
    	if(a>b)
    		r=a;
    	return r;
    }
    Mais j'obtiens l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ../Src/main.c:184:5: error: conflicting types for 'max'

  2. #2
    Membre chevronné Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 700
    Points : 1 780
    Points
    1 780
    Par défaut
    Hello,

    N'aurais-tu pas une autre fonction que s'appelle max ? Un #define max ? Une variable globale qui se nomme max ?

    Au fait, pour ton code, il y a plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    float max(float a,float b) {
        return a>b ? a : b ;
    }

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 171
    Points : 55
    Points
    55
    Par défaut
    Salut, merci pour ta reponse.

    Non, meme quand je change le nom de ma fonction j'ai la meme erreur.

    J'ai pas compris cette ligne la tu pourrais m'expliquer ce qu'il se passe ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 138
    Points : 33 106
    Points
    33 106
    Billets dans le blog
    4
    Par défaut
    Tu ne définirais pas une variable max à la ligne 184 de main.c ?

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 171
    Points : 55
    Points
    55
    Par défaut
    Non c'est simplement que ma fonction se situe a cette ligne la (plus exactement maintenant car j'ai ajoute du code):


    Nom : maxflaot.jpg
Affichages : 1954
Taille : 242,6 Ko

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 197
    Points : 17 169
    Points
    17 169
    Par défaut
    je parie que:
    • tu n'as pas déclaré ta fonction avant de l'utiliser
    • tu utilises soit un vieux compilateur soit un qui serait mal réglé
    • tu n'as pas activé ou lu les avertissements ("warnings") de compilations


    Il existait une fonctionnalité du C qui date d'avant sa normalisation: toute utilisation d'une fonction non déclarée suppose que celle-ci existe, retourne un int et accepte les arguments de l'appel.
    Autrement dit qu'elle est supposée déclarée telle que int f();.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 138
    Points : 33 106
    Points
    33 106
    Billets dans le blog
    4
    Par défaut
    Pourquoi ne récupères-tu pas la valeur de retour ?
    As-tu correctement (forward) déclaré la fonction plus haut ?

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 171
    Points : 55
    Points
    55
    Par défaut
    Effectivement je n'avais pas declare ma fonction au debut du programme

    Merci pour vos reponses

  9. #9
    Membre chevronné Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 700
    Points : 1 780
    Points
    1 780
    Par défaut
    Re,-

    Citation Envoyé par tengalice49 Voir le message
    J'ai pas compris cette ligne la tu pourrais m'expliquer ce qu'il se passe ?
    Le ? : est l'opérateur ternaire du c. Cela se lit comme ceci: si a est plus grand que b, alors retrouner a, sinon retourner b.

    Quelques exemples:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #define MIN(a,b) ( (a) < (b) ? (a) : (b) )
     
    c= a > b ? a : b ;
     
    printf("Le nombre %s premier\n", isPrime(x) ? "est" : "n'est pas");
     
    printf("Il y a %d ligne%c\n", nlines, nlines > 1 ? 's' : 0x00);

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 171
    Points : 55
    Points
    55
    Par défaut
    Super merci beaucoup pour l'explication !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] fonctions Max avec des conditions
    Par matlabation dans le forum Excel
    Réponses: 4
    Dernier message: 16/07/2015, 18h47
  2. Fonction max avec condition
    Par Invité dans le forum Excel
    Réponses: 4
    Dernier message: 22/07/2013, 15h58
  3. recuperer la valeur d une fonction Max avec jdbc
    Par mitnick2006 dans le forum JDBC
    Réponses: 2
    Dernier message: 09/05/2008, 12h17
  4. Fonction MAX() avec LIMIT ?
    Par Neal Morse dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 19/03/2008, 22h56
  5. Pb avec la fonction Max d'access
    Par abaad dans le forum Access
    Réponses: 1
    Dernier message: 03/04/2006, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo