Probleme avec l'appelle des fonctions
Shams243
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
bonjour;
au faite au debut j'avais l'intention d'appeller la fonction main dans une autre fonction, mais sa me donner une erreure d'ou je me suis dit de faire appelle a la meme fonction
voici mon code,
j'ai signaler quelque part dans mon code(REGARDER A PARTIR D'ICI), pour vous montrer la partie importante;
le probleme qui est la est que quand j'execute, je passe pour la premiere fois je saisie le nombre de photocopie et ensuite quand je recommence, je resaisie encore et la au lieu de rappeler la fonction, le programme s'arrete carrement, donc il appele la fonction une seule fois et pourtant il est sense le faire indefiniment;
c'est un devoir de la fac, je dois le rendre demain.
votre aide me seras precieuse.
au faite au debut j'avais l'intention d'appeller la fonction main dans une autre fonction, mais sa me donner une erreure d'ou je me suis dit de faire appelle a la meme fonction
#include <stdio.h> int a=0; //QUESTION 4 //i int logique(int x, int y) { if(x>y) printf("\n le plus agee a >>>> %dans\n", x); else if(x==y) printf("\n vous avez tous deux le meme age\n"); else printf("\n le plus grand a >>>> %d ans\n", y); } //ii int arithmetique(int x,int y) { if(x>0 && x<5) { y+=1; //ici on augmente la valeur de y de 1 puis on la stock dans cette meme variable, unpeu comme une mise a jour x*=2; //ici on multiplie la valeur de x par 2 puis on la stock dans cette meme variable, unpeu comme une mise a jour printf("\n x multiplier par deux donne >> %d\n", x); printf("\n y augmenter de 1 vaut >> %d\n", y); } else { y/=2; //ici on divise la valeur de y par 2 puis on la stock dans cette meme variable, unpeu comme une mise a jour x%=2; //ici on divise la valeur de x et ensuite on garde le reste puis on la stock dans cette meme variable, unpeu comme une mise a jour printf("\n y diviser par deux vaut >> %d(division entiere)\n",y); printf("\n x modulo deux vaut >> %d\n", x); } } //QUESTION 5 int ver(int x) { if(x>=0 && x<5) { printf("\n1\n"); return(0); } else printf("\n0 \n"); } //QUESTION 6 float moyenne(int a, int b, int c) { float x; x=a+b+c; x/=3; printf("\n la moyenne est de %f \n", x); } // REGARDER A PARTIR D'ICI //QUESTION 7 int coutphotocopies(int n) { int cout=20; a+=n; if(a<-1) { printf("\nveuiller saisir un entier positif \n"); printf("\nentrer une nouvelle fois le nbre de photocopie ->"); scanf("%d",n); coutphotocopies(n); } else if(a>0 && a<=10) { printf("sa vous coute %d centime \n --------", cout); printf("\nvous etes a %d photocopie \n--------", a); printf("\nentrer une nouvelle fois le nbre de photocopie ->"); scanf("%d",n); coutphotocopies(n); } else if(a>10 && a <=20) { printf("sa vous coute %d centime \n -------", cout-5); printf("\nvous etes a %d photocopie--------- \n", a); printf("\nentrer une nouvelle fois le nbre de photocopie ->"); scanf("%d",n); coutphotocopies(n); } else { printf("sa vous coute %d centime \n---------", cout-10); printf("\nvous etes a %d photocopie \n---------\n", a); printf("\nentrer une nouvelle fois le nbre de photocopie ->"); scanf("%d",n); coutphotocopies(n); } } int main(void) { int x,X,Y,a,b,c,A,B,C; int cpt=0; printf("\nBIENVENUE DANS LE TP DE SHAMIRANI\n"); printf("VEUILLER FAIRE VOTRE CHOIX :) "); printf("\n1. UTILISATION DE L'OPERATEUR LOGIQUE RELATIONNEL\n2. UTILISATION DE L'OPERATEUR ARITHMETIQUE"); printf("\n3. VERIFIER SI x APPARTIENT A [0,5[\n4. CALCULER LA MOYENNE DE a,b,c"); printf("\n5. SERVICE DE PHOTOCOPIE\n6. EXIT\n"); scanf("%d",&cpt); switch(cpt) { case 1: printf("\n veuiller saisir la valeur de x --> "); scanf("%d", &X); printf("\n veuiller saisir la valeur de y --> "); scanf("%d", &Y); logique(X,Y); break; case 2: printf("\n veuiller saisir la valeur de x --> "); scanf("%d", &X); printf("\n veuiller saisir la valeur de y --> "); scanf("%d", &Y); arithmetique(X,Y); break; case 3: printf("\n veuiller saisir une valeur a verifier "); scanf("%d", &a); ver(a); break; case 4: printf("\n veuiller saisir la valeur du a --> "); scanf("%d", &A); printf("\n veuiller saisir la valeur du b --> "); scanf("%d", &B); printf("\n veuiller saisir la valeur du c --> "); scanf("%d", &C); moyenne(A,B,C); break; case 5: printf("\nveuiller saisir le nombre de photocopie -->"); scanf("%d", &x); coutphotocopies(x); break; case 6: return(0); default: printf("NUMERO NON RECONNUE VEUILLER RECOMMENCER\n"); main(); } return (0); }
voici mon code,
j'ai signaler quelque part dans mon code(REGARDER A PARTIR D'ICI), pour vous montrer la partie importante;
le probleme qui est la est que quand j'execute, je passe pour la premiere fois je saisie le nombre de photocopie et ensuite quand je recommence, je resaisie encore et la au lieu de rappeler la fonction, le programme s'arrete carrement, donc il appele la fonction une seule fois et pourtant il est sense le faire indefiniment;
c'est un devoir de la fac, je dois le rendre demain.
votre aide me seras precieuse.
A voir également:
- Probleme avec l'appelle des fonctions
- Appelle masqué - Guide
- Appelle telephonique - Guide
- Numéro 06 qui appelle et raccroche - Guide
- Ligne occupée quand j'appelle - Forum SFR
- En préparant son diaporama, tom a pris quelques notes qui l'aideront lors de sa présentation. quand il présentera l'âne, il a prévu de raconter une anecdote sur cet animal. comment s'appelle l'âne de son histoire ? - Forum Windows
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
je suggère que tu corriges l'indentation dans ta fonction.
je suggère que tu ajoutes un printf tout à la fin de la fonction coutphotocopies.
je suggère que tu corriges l'indentation dans ta fonction.
je suggère que tu ajoutes un printf tout à la fin de la fonction coutphotocopies.