[return] petit soucis

Utilisateur anonyme -  
tarek_dotzero Messages postés 834 Statut Membre -
Bonjour,

Quelqu'un pourrait-il me corriger mon programme pour qu'il m'affiche le résultat de ma fonction:

#include <stdio.h>

double Essai(double a,double b,double c);

double Essai(double a,double b,double c)
{
return a+b+c;

}

int main()
{
Essai(3,5,4);

system("PAUSE");
}

Merci d'avance

6 réponses

  1. SmallFitz Messages postés 358 Date d'inscription   Statut Membre Dernière intervention   189
     
    Salut !
    Quand ton programme ne fonctionne pas il faut toujours regarder les erreurs de ton compilo !
    Voilà ce qu'elles affichent :
    C:main.c:15: warning: function declaration isn't a prototype
    C:main.c:: In function `main':
    C:main.c:18: warning: implicit declaration of function `system'
    C:main.c:19: warning: control reaches end of non-void function
    :: === Build finished: 0 errors, 3 warnings ===
    

    Ensuite tu regardes chacun des rapports d'erreur.
    C:main.c:15: warning: function declaration isn't a prototype
    

    Il faut que tu mettes void entre parenthèses, car ta fonction main n'a aucun paramètre.
    C:main.c:18: warning: implicit declaration of function `system'
    

    Là tu utilises une mauvaise directive de préprocesseur. Il faut mettre #include <stdlib.h> pour pouvoir utiliser la fonction system.
    C:main.c:19: warning: control reaches end of non-void function
    

    Ta fonction est de type int, donc il faut que tu lui retourne un int a la fin de ta fonction ! Comme ceci : return 0;

    Voilà c'est rapide quand on suit le compilo ^^
    Bon courage pour la suite !
    0
  2. Utilisateur anonyme
     
    Merci beaucoup de m'avoir répondu mais lorsque je lance le programme je n'ai rien en sortie alors que j'ai mis return (a+b+c);. Or rien ne s'affcihe comme résultat.

    Peux-tu me renseigner s'il te plaît ?

    Merci d'avance.
    Bonne journée
    0
  3. SmallFitz Messages postés 358 Date d'inscription   Statut Membre Dernière intervention   189
     
    Salut !

    Il ne suffit pas de donner une valeur à une fonction pour qu'elle s'affiche.
    En effet il faudrait plutôt que tu stockes sa valeur dans une variable, puis que tu affiches cette variable !
    Ce qui donnerait cela :
    int main(void)
    {
    int a = 0;

    a = Essai(3,5,4);
    printf("La valeur que retourne Essai est : ", a);

    system("PAUSE");
    }
    0
    1. tarek_dotzero Messages postés 834 Statut Membre 122
       
      Slt,

      Vous avez oublié un petit truc:
      pour la fonction printf:

      printf("bla bla: %d",a);

      telque "a" est un entier.
      0
  4. ekra Messages postés 1873 Statut Membre 342
     
    Bonjour,

    Tu peux utiliser puts bien plus simple pour un débutant.
    D'ailleurs dans le printf précédent, il manque un %lf pour
    printf("La valeur de retour est : %lf" , essaie(1,2,3));

    Et nuance, un warning ne provoque pas d'erreur à la compilation même si bien souvent c'est une erreur humaine :)

    #include <stdio.h>
    #include <stdlib.h>
    
    double essai(double a,double b,double c);
    
    
    double essai(double a,double b,double c) {
         return a+b+c;
    }
    
    
    int main()
    {
    puts(essai(3,5,4));
    
    getc();
    }
     
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. SmallFitz Messages postés 358 Date d'inscription   Statut Membre Dernière intervention   189
     
    Salut !

    Il me semble que dans l'exemple que tu donnes il manque un "return 0;" dans la fonction main.
    Et ce ne serait pas getch(); ou getchar(); au lieu de getc(); ?
    Une erreur d'inattention sans doute.

    Bonne continuation ;-)
    0
  7. tarek_dotzero Messages postés 834 Statut Membre 122
     
    Salut,

    juste un petit point: pour pouvoir utiliser getch() vous devez mettre:

    #include <conio.h>
    0