2017-09-28 2 views
-1

Il s'agit d'un programme de compte bancaire standard. Permettre le dépôt, le retrait et l'affichage des fonds. J'ai du mal à faire en sorte que le programme entre dans les fonctions de mon instruction switch, qui est basée sur leur choix. Voici la sortie de ce code. CodeOutput. Je ne demande à personne de coder pour moi, si vous pouviez peut-être juste indiquer où je me suis trompé.C joignant deux fonctions

#include <stdio.h> 

float getDeposit(float currentBalance); 
float getWithdrawal(float currentBalance); 
float displayBalance(float currentBalance); 
char displayMenu(); 

int main() 
{ 


    float currentBalance=200,newBalanceDep,newBalanceWith; 
    char choice; 
    choice = displayMenu(); 


     switch (choice) 
    { 

     case 'D': case 'd': 
      newBalanceDep=getDeposit(currentBalance); 
      break; 
     case 'W': case 'w': 
      newBalanceWith=getWithdrawal(currentBalance); 
      break; 
     case 'B': case 'b': 
      displayBalance(currentBalance); 
      break; 
     case 'Q': case 'q': 

      printf("Thank you!"); 
      break; 
     default: 
      printf("Invalid choice."); 
      break; 

    } 

    return 0; 
} 

char displayMenu() 

{ 
    char choice; 

    printf("Welcome to HFC Credit Union! \n"); 
    printf("Please select from the following menu: \n"); 
    printf("D: Make a deposit \n"); 
    printf("W: Make a withdrawal \n"); 
    printf("B: Check your account balance \n"); 
    printf("Q: To quit \n"); 

    scanf("\n%c",choice); 

    return choice; 

} 

float getDeposit(float currentBalance) 
{ 
    float depositAmount; 
    float newBalanceDep; 



    printf("Enter amount you would like to deposit: /n"); 
    scanf("%f",&depositAmount); 

    if(depositAmount>0) 
    { 
     newBalanceDep=depositAmount+currentBalance; 
    } 

    return newBalanceDep; 
} 

float getWithdrawal(float currentBalance) 
{ 
    float withdrawalAmount; 
    float newBalanceWith; 

    printf("Enter amount you would like to withdrawal: /n"); 
    scanf("%f",&withdrawalAmount); 

    if(withdrawalAmount>currentBalance) 
    { 
     printf("Insufficient Funds. Try again."); 
     printf("Enter amount you would like to withdrawal: /n"); 
     scanf("%f",&withdrawalAmount); 

    } 
    else if(withdrawalAmount<=currentBalance) 
    { 
     newBalanceWith=withdrawalAmount+currentBalance; 
    } 

    return newBalanceWith; 
} 

float displayBalance(float currentBalance) 

{ 
    printf("Your current balance is %.2f",currentBalance); 

} 
+0

Affichez la sortie sous forme de texte au lieu d'utiliser une image. –

+0

Veuillez fournir des informations utiles, a) pas comme image b) pas comme lien externe. C'est à dire. Veuillez modifier votre question pour inclure la sortie sous forme de texte. Veuillez également expliquer ce que vous n'aimez pas à propos de la sortie. Lire [demander] et [mcve] pourrait aider. – Yunnosch

+0

C'est la sortie que je reçois dans le terminal – Jaruto

Répondre

2

Vous devez passer &choice-scanf, non choice.

char choice; /*...*/; scanf("\n%c",choice); // --->  
//         v---- add 
char choice; /*...*/; scanf("\n%c",&choice);` 

Le passage à choice est un comportement indéfini.

Un bon compilateur devrait vous donner un avertissement.

+0

J'utilise dev-C++ et je ne reçois aucun avertissement, il ne suffit pas d'entrer les fonctions dans l'instruction switch en fonction du choix des utilisateurs – Jaruto

+0

@Jarute Utilisez ma suggestion et il le fera. – PSkocik

+1

oh opérateur d'adresse gotcha je n'ai pas lu toute la chose que je suis dans une bousculade merci beaucoup cela fonctionne – Jaruto