2015-07-31 4 views
1

У меня возникла проблема с моим одним заданием. Я сделал одно имя функции chequingsaving, и когда я вызываю эту функцию, он печатает некоторые данные, которые являются правильными, но когда я ввел символ, зависит от моего выбора учетной записи, он напрямую выходит из цикла. Если я введу правильное значение символа, то произойдет то же самое. Этот код функции приведен ниже. Помогите мне узнать мою ошибку. Дело в том, что я также использовал случай переключения, но все же он напрямую переходит к умолчанию. То же самое происходит с циклом if/else.switch case loop statement

void chequingsaving() /*Chequing and saving account function*/ 
{ 
    char a; 
    double r, Initialamount = 0; 
    printf(" c) Chequing\n"); 
    printf(" s) Savings\n"); 
    printf("Which account would you like to use?\n"); 
    scanf("% c", &a); 

    if (a == 'c' || a == 'C') 
     { 
      printf("Please enter the amount for deposit\n"); 
      scanf("% lf", &r); 
      Initialamount = Initialamount + r; 
      printf("Your chequing account balance is=%lf", Initialamount); 
     } 
    else 
     if (a == 's' || a == 'S') 
     { 
      printf("Please enter the amount for deposit\n"); 
      scanf("%lf", &r); 
      Initialamount = Initialamount + r; 
      printf("Your chequing account balance is=%lf", Initialamount); 
     } 
     else 

     printf("Invalid character\n"); 

} 
+0

Вы отлаживали значение a, когда оно вводит инструкции if/else? – lintmouse

ответ

1

Удалить пространство в scanf:

scanf("%c", &a); 

, а также в следующем scanf:

scanf("%lf", &r); 
0

Ваш зсапЕ не правильно, у вас есть пространство "% C".