Ошибка принудительного возврата -1 из функции в C - PullRequest
0 голосов
/ 30 ноября 2018

Создание банковской программы в классе C для начинающих.Весь мой код работает успешно (после тестирования всех случаев), за исключением принудительного возврата отрицательного в части цикла.Когда значение возвращается копией в основную программу, оно изменяет баланс.

Функция return

  else { //If the amount to be withdrawn from the account is greater than the existing amount
        printf("Error. Withdrawal must be less than account balance.\n"); //Output error message
        return -1; //Return a negative one to the main program
  }

Возврат копией в main

case 3: // CashВывод средств

        printf("You are about to withdraw cash from an account.\n \n");
        withdrawnAmount = withdrawal(balance); //Calling function to withdraw money from existing account
        balance -= withdrawnAmount;
        printf("Your new account balance is $%d\n\n", balance);
        break;

1 Ответ

0 голосов
/ 30 ноября 2018

Я думаю, что в этом случае вам следует либо return 0;, чтобы сумма не вычиталась, например:

 else { //If the amount to be withdrawn from the account is greater than the existing amount
        printf("Error. Withdrawal must be less than account balance.\n"); //Output error message
        return 0; //Return zero to the main program
  }

Или, если вы хотите продолжать использовать отрицательную сумму, вам потребуетсяпроверить возвращаемое значение перед вычетом из баланса счета следующим образом:

case 3: //Cash Withdrawal
    printf("You are about to withdraw cash from an account.\n \n");
    withdrawnAmount = withdrawal(balance); //Calling function to withdraw money from existing account
    if(withdrawnAmount > 0)
       balance -= withdrawnAmount;
    else
       printf("-1");
    printf("Your new account balance is $%d\n\n", balance);
    break;

Надеюсь, это поможет.

...