Aide langage c (resultat erroné)

Fermé
bibliomax Messages postés 30 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 23 janvier 2010 - 15 janv. 2009 à 12:40
bibliomax Messages postés 30 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 23 janvier 2010 - 15 janv. 2009 à 13:55
Bonjour.
cet exercice m'affiche pas le bon resultat ..
cet exercice permettra la gestion d'un certain nombre d'operation bancaires RETRAIT VERSEMENT ET TRANSFERT .
ecrire une procedure avec 3 parametre total retiré total versé et total transferé la procedure doit répéter le traitement suivant pour chaque client jusqu'à ce qu'il n'y plus de client

elle demande au client d'introduire le montant et le type d'operation à realiser 'r' pour retirer 'v' pour verser 't' pour transferer la lecture est réaliser par lune fonction qui retourne le caractère tap^é on n'accepte que l'un de ces 3 caractères.
ensuite elle mit a jour le parametre adéquat en fonction de l'operation choisie ce traitement est réaliser par l'intermédiaire d'une procedure à 4 parametres

enfin elle demande s'il y a un autre client si la reponse est 'o' le traitement sera répété 'n' le traitement se termine

voilà ce je jai fait..
#include <stdio.h>




char type(){
char rep;
while(rep !='r' && rep !='v' && rep!='t'){
printf(" le type d'opeartion ? :");
scanf("%c",&rep);
}
return rep;
}

void calcul(float mt,float r,float v, float t){
char x;
printf(" entrer le montant :");
scanf("%f",&mt);
getchar();
r=type();
if(x=='r') r=mt;
else if(x=='v') v=mt;
else if(x=='t') t=mt;
}
char encor(){
char y;
while(y!='o' && y!='n'){
printf("y-a t'il un autre client (o/n) :");
scanf("%c",&y);
}
return y;
}






void pro_total(float total_r,float total_v,float total_t){

char repo;
float m,r,v,t;
do{
calcul(m,r,v,t);
total_r=total_r+r;
total_v=total_v+v;
total_t=total_t+t;
getchar();
repo=encor();
}
while(repo!='n');
if(repo=='n'){
printf(" total retire =%f\n",total_r);
printf(" total verse =%f\n",total_v);
printf(" total transfere =%f\n",total_t);
}
}

void main(){
float tr,tv,tt;
pro_total(tr,tv,tt);
}

merci d'avance
A voir également:

3 réponses

progfann Messages postés 365 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 23 septembre 2010 23
15 janv. 2009 à 13:12
d'abords tu dois mettre x à la place de r:

void calcul(float mt,float r,float v, float t){
char x;
printf(" entrer le montant :");
scanf("%f",&mt);
getchar();
x=type();
if(x=='r') r=mt;
else if(x=='v') v=mt;
else if(x=='t') t=mt;


c'est le premier erreur, je vois que tu repete la declaration de tes variables, c'est mieux de de declarer des variables globales qui vont te servir dans tte tes fonctions. sinon t'as l'enoncé??
0
bibliomax Messages postés 30 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 23 janvier 2010 3
15 janv. 2009 à 13:20
bonjour .. oui l'énoncé je l'ai ecris au debut
0
progfann Messages postés 365 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 23 septembre 2010 23
15 janv. 2009 à 13:43
essai celui la:
#include <stdio.h>




char type(){
char rep;
while(rep !='r' && rep !='v' && rep!='t'){
printf(" le type d'opeartion ? :");
scanf("%c",&rep);
}
return rep;
}

void calcul(float mt,float total_r,float total_v,float total_t){
char x;
printf(" entrer le montant :");
scanf("%f",&mt);
getchar();
x=type();
if(x=='r') total_r=mt;
else if(x=='v') total_v=mt;
else if(x=='t') total_t=mt;

printf(" total retire =%f\n",total_r);
printf(" total verse =%f\n",total_v);
printf(" total transfere =%f\n",total_t);
}


char encor(){
char y;
while(y!='o' && y!='n'){
printf("y-a t'il un autre client (o/n) :");
scanf("%c",&y);
}
return y;
}






void pro_total(float r,float v,float t){

char repo;
float m;

calcul(m,r,v,t);

getchar();

}

void main(){
float tr,tv,tt;
pro_total(tr,tv,tt);
system("PAUSE");

}
0
progfann Messages postés 365 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 23 septembre 2010 23 > progfann Messages postés 365 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 23 septembre 2010
15 janv. 2009 à 13:48
Ce qui retourne ce programme est logique d'aprés ce que tu as ecrit: Par exemple si j'ai choisi 'r' donc le resultat du retrait= montant, et met les autre valeurs (v,t) à 0. Pour ameliorer ça tu dois verifier tes fonctions et surtout calcule(). :)
0
bibliomax Messages postés 30 Date d'inscription mercredi 15 octobre 2008 Statut Membre Dernière intervention 23 janvier 2010 3
15 janv. 2009 à 13:55
bonjour progfann ça n'a pas marché je sais pas d'ou vient l'erreur en tt cas le soir jai cours et je vais en discuter avec le prof merci encor progfann de votre aide vous etes un bon exemple à suivre
0