Probleme de fonction

Résolu
pims -  
 pims -
bonjour , j'ai un petit problème avec les fonctions. Je viens de commencer un iut informatique et pour mon 1er cours de C ,nous avons "appris" ce qu'était une fonction et "comment" s'en servir. J'ai été très surpris ,je croyais qu'on les voyais plutot après 2 ,3 cours ...bref la n'est pas la question.

Voici mon programme :il demande 3 nombres a l'utilisateur et trouve quel est le plus petit.(bn je c c nul mais bon faut bien commencer!!!). J'ai su le faire sans les fonctions , mais quand la prof m'a demandé de le faire avec les fonctions....j'me suis completement embrouillé!!!

Est ce que quelqu'un pourait m'expliquer comment on les utilise dans mon programme please!
merci!




#include<stdio.h>


int main(){
float minimum(float);
float nb1,nb2,nb3,min;
printf("donnez votre 1er nombre :");
scanf("%f",&nb1);
printf("donnez votre 2eme nombre :");
scanf("%f",&nb2);
printf("donnez votre 3eme nombre :");
scanf("%f",&nb3);

printf("le nombre minimum est %f\n",minimum(min));
system ("pause");
return 0;
}

float minimum(float min){
float nb1,nb2,nb3;

if ((nb1<nb2)&&(nb1<nb3))
return(nb1);
else if ((nb2<nb1)&&(nb2<nb3))
return(nb2);
else
return(nb3);
}
A voir également:

3 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Voici un exemple.
#include<stdio.h>

float minimum(float n1,float n2, float n3);

int main(){
        float n1,n2,n3;
        printf("donnez votre 1er nombre :");
        scanf("%f",&n1);
        printf("donnez votre 2eme nombre :");
        scanf("%f",&n2);
        printf("donnez votre 3eme nombre :");
        scanf("%f",&n3);

        printf("le nombre minimum est %.2f\n",minimum(n1,n2,n3));
        system ("pause");
return 0;
}


float minimum(float n1,float n2, float n3){
        float min;
        if (n1<n2)
                min = n1;
        else
                min = n2;

        if(min>n3)
                min = n3;
        return min;
}
0
chuka Messages postés 965 Date d'inscription   Statut Membre Dernière intervention   378
 
Salut,
en fait, c'est ta fonction qui va faire le travaille de trouver le minimun (et te le retourner), donc pour comparer quelquechose, il faut que tu passes tes nombres recuperer précédemment.
Jespere ca pourra t'aider!!!
@+

#include <stdio.h>
float minimum(float,float,float);
int main()
{
float min;
float nb1,nb2,nb3;
printf("donnez votre 1er nombre :");
scanf("%f",&nb1);
printf("donnez votre 2eme nombre :");
scanf("%f",&nb2);
printf("donnez votre 3eme nombre :");
scanf("%f",&nb3);
printf("le nombre minimum est %f\n",min=minimum(nb1,nb2,nb3));
getchar();
return 0;
}

float minimum(float nb1,float nb2,float nb3)
{
if ((nb1<nb2)&&(nb1<nb3))
return(nb1);
else if ((nb2<nb1)&&(nb2<nb3))
return(nb2);
else
return(nb3);
}
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

Le prototype de la fonction on le mets en général après les directives #include, #define, etc. et pas dans la fonction main.

Ta fonction doit envoyer un minimum entre 3 float (j'aurais mis plutôt des entiers ;-) donc ces 3 nombres il faut les passer à la fonction en tant qu'arguments.
La valeur min, sera envoyé par la fonction, donc pas besoin de déclarer une variable min dans main, mais dans la fonction.
0
pims
 
ok merci beaucoup !!!!!
0