[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

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
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
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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