[return] petit soucis

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

  • Votes
  • Date
  • Date décroissante
  1. 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 !
    1. 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
      1. 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");
        }
        1. Slt,

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

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

          telque "a" est un entier.
      2. 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();
        }
         
        1. 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 ;-)
          1. Salut,

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

            #include <conio.h>