Tu définis des fonctions avec de int pour premierChiffre et deuxiemeChiffre, mais tu utilises long pour tes cariable premierChiffre et deuxiemeChiffre !
Un conseil évite d'utiliser les mêmes noms pour les variables et les paramètres des fonctions : ça embrouille !
int main() { double premierNombre = 0, deuxiemeNombre = 0, resultat = 0; int calcule = 0; //on declare les variables printf("quel est le choix de votre calcule \n 1 addition \n 2 soustraction \n 3 multiplication : ");
scanf("%ld", &calcule); //on demande le choix d'operation printf("premier nombre : ");
scanf("%ld", &premierNombre); //entrez le premier nombre printf("deuxieme nombre : ");
scanf("%ld", &deuxiemeNombre); //entrez le deuxieme nombre
if(calcule == 1)//if qui envoi les parametre a la fonction qui lui convient {
resultat = calculeAddition(premierNombre, deuxiemeNombre); //on recupere le return de la fonction printf("%ld", resultat); // on affiche } elseif(calcule == 2) {
resultat = calculeSoustraction(premierNombre, deuxiemeNombre); printf("%ld", resultat);
Par contre moi je me pose une question. Plutôt que de poster un message dés que l'on a une erreur sur le code source, pourquoi ne pas le relire, et aller voir dans le cours de M@teo les différences existentes. Comme ca tu trouves tout seul les erreurs bêtes (ceci est mon avis)
je ne sais pas pourquoi ca ne marche pas sinon j'aurais mis le bout de code qui bloque
j'ai rectifier les variables en mettant int et non long mais la variable resultat prend toujours 0 a la fin du code
le code :
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) {
//on déclare les variables int resultat = 0, calcule = 0, premierChiffre = 0, deuxiemeChiffre = 0;
//la fonction multiplier int fonctionMulti(int premierChiffre, int deuxiemeChiffre) {
resultat = premierChiffre * deuxiemeChiffre; return resultat; }
//la fonction soustraire int fonctionSous(int premierChiffre, int deuxiemeChffre) {
resultat = premierChiffre - deuxiemeChiffre; return resultat; }
//la fonction additionner int fonctionAdd(int premierChiffre, int deuxiemeChiffre) {
resultat = premierChiffre + deuxiemeChiffre; return resultat; }
//et enfin la fonction diviser int fonctionDiv(int premierChiffre, int deuxiemeChiffre) {
resultat = premierChiffre / deuxiemeChiffre; return resultat; }
printf("Que souhaitez vous faire ?\n1. Addition\n2.Soustraction\n3.Multiplication\n4.Division\n");
scanf("%ld", &calcule);
Tu appelles les fonctions AVANT que l'utilisateur rentre les nombres donc 0+0=0 ; 0-0=0 ; 0*0=0 ; 0/0=error !
Il faut mettre tes scanfs avant l'appel des fonctions !
De plus je te conseille de mettre plutôt des doubles que des int (pour les variable et les fonctions) sinon la fonction division ne renverra que la partie entière sur un nombre à virgule !
Mais là tu affiches le résultat avant de faire les opération !
Il faut demander les chiffres à l'utilisateur ensuite tu fais 36+80 (c'est des exemple hein ) et enfin tu affiches 116 !
Donc le printf ("le résultat est %ld !", resultat); se met après après l'appel des fonctions !
//on déclare les variables int resultat = 0, calcule = 0, premierChiffre = 0, deuxiemeChiffre = 0;
//la fonction multiplier int fonctionMulti(int premierChiffre, int deuxiemeChiffre) {
resultat = premierChiffre * deuxiemeChiffre; return resultat; }
//la fonction soustraire int fonctionSous(int premierChiffre, int deuxiemeChffre) {
resultat = premierChiffre - deuxiemeChiffre; return resultat; }
//la fonction additionner int fonctionAdd(int premierChiffre, int deuxiemeChiffre) {
resultat = premierChiffre + deuxiemeChiffre; return resultat; }
//et enfin la fonction diviser int fonctionDiv(int premierChiffre, int deuxiemeChiffre) {
resultat = premierChiffre / deuxiemeChiffre; return resultat; }
printf("Que souhaitez vous faire ?\n1. Addition\n2.Soustraction\n3.Multiplication\n4.Division\n");
scanf("%ld", &calcule);
Bonjour déjà relis le cour de Mateo sur les fonctions ( car je pense que tu n'a pas trés bien compris leur principe) , et si tu veux faire une calculette avec uniquement les calculs de bases , tu n'est pas obliger d'utiliser des fonctions je m'explique ; Tu peux faire les calculs dans ta conditions . ( Je crois que c'est expliquer dans le cour de Mateo ).
Je dis sa car ( je me repete) je ne crois pas que tu ait compris le principe des fonctions.
A ta place je n'aurais pas mis le code !
On est pas censé coder à sa place mais l'aider !
Ce n'est qu'une question de logique :
Imagine que t'es avec un ami. Le but de la manoeurvre est de faire une opération parmi les 4 suivantes : addition, soustraction, multiplication, division, et à partir de deux nombres qu'il te donne au hasard !
Comment vas-tu t'y prendre ?
1.Demander l'opération
2.Demander les nombres
3.Prendre un papier et un crayon (ou une caltoch ou de tête) et effectuer le calcul
4.Lui donner le résultat.
Tu n'oserais pas donner le résultat avant même d'avoir effectuer le calcul tout de même ce serait de la magie !
Edit :
Citation : L'aigle
Bonjour déjà relis le cour de Mateo sur les fonctions ( car je pense que tu n'a pas trés bien compris leur principe) , et si tu veux faire une calculette avec uniquement les calculs de bases , tu n'est pas obliger d'utiliser des fonctions je m'explique ; Tu peux faire les calculs dans ta conditions . ( Je crois que c'est expliquer dans le cour de Mateo ).
Je dis sa car ( je me repete) je ne crois pas que tu ait compris le principe des fonctions.
Le but était aussi d'utiliser les fonctions ! Mais en effet il n'a pas compris leur principe je crois (enfin au niveau de l'appel de la fonction).
il est vrai que je ne n'ai pas trop compris l'appel des fonctions et c'est pour ça que j'essaie de m'entrainer à faire des petits programmes qui servents à rien comme ça
sinon pour ce qui est de l'ordre du code, vous avez raison, je n'ai pas assez réfléchi
int main(int argc, char *argv[]) { //on déclare les variables int resultat = 0, calcule = 0, premierChiffre = 0, deuxiemeChiffre = 0;
//la fonction multiplier int fonctionMulti(int premierChiffre, int deuxiemeChiffre) {
resultat = premierChiffre * deuxiemeChiffre; return resultat; }
STOP ! Pas du C !
En C standard, on ne peut pas définir une fonction dans une fonction. Certains compilateur permettent ça, mais c'est une extension. Ca rend le code non portable.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.