在 GetTransfer 之后,我在帐户 1 收到未分配变量错误。我无法弄清楚我搞砸了什么逻辑错误

I'm getting a unassigned variable error at the account1 after the GetTransfer. I can not figure out what logic error i have messed up on

本文关键字:错误 弄清楚 什么 分配 之后 GetTransfer 变量      更新时间:2023-10-16

在代码的GetTransfer部分之后获取未分配的变量错误。它声称account1是未分配的变量,但从我所看到的情况来看,我已经声明了它。我已经尝试过多次纠正它,我只是能弄清楚。

#include <iostream>
#include <conio.h>
using namespace std;
// Chance Pinkerton
// December 3, 2013
// CaseProject2Chapter3
struct bankInfo
{
    int accountNum;
    double startBal; 
    double endBal;
};
int main()
{
        bankInfo account1;
        bankInfo account2;
        double transferAmt;
        int GetAccount1();
        int GetAccount2();
        double GetBal1();
        double GetBal2();
        double GetTransfer();
        account1.accountNum = GetAccount1();
        while (account1.accountNum < 1000 || account1.accountNum > 9999)
        {
            cout << "Error. That account does not exsist." << endl;
            account1.accountNum = GetAccount1();
        }
        GetBal1();
        account2.accountNum = GetAccount2();
        while (account2.accountNum < 1000 || account2.accountNum > 9999)
        {
            cout << "Error. That account number doesnt exsist." << endl;

             account2.accountNum = GetAccount2();
        }
        if (account2.accountNum == account1.accountNum)
            {
                cout << "Error. Account numbers can not be the same " << endl;
                account2.accountNum = GetAccount2();
            }

        GetBal2();
        transferAmt = GetTransfer();
        account1.accountNum = (account1.accountNum % 5) + (account1.accountNum * 10);
        account2.accountNum = (account2.accountNum % 5) + (account2.accountNum * 10);
        account1.endBal;
        account2.endBal;
        while (account1.endBal < 0)
        {
            cout << "Error. Account balance can not be negative." << endl;
            GetTransfer();
            if (account1.endBal < 10)
            {
            cout << "Warning. Account balance will be below $10.00 " << endl;
            }
        }
        account1.endBal = account1.startBal - transferAmt;
        account2.endBal = account2.startBal + transferAmt;
        cout << "Account number 1: " << account1.accountNum << endl;
        cout << "Starting balance: " << account1.startBal << endl;
        cout << "Ending balance: " << account1.endBal << endl;
        cout << "Account number 2: " << account2.accountNum << endl;
        cout << "Starting balance: " << account2.startBal << endl;
        cout << "Ending balance: " << account2.endBal << endl;
    getch();
    return 0;
}
int GetAccount1()
{
    int accountNum;
    cout << "Please enter your account number " << endl;
    cin >> accountNum;
    return accountNum;
}
int GetAccount2()
{
    int accountNum;
    cout << "Please enter the second account number " << endl;
    cin >> accountNum;
    return accountNum;
}
double GetBal1()
{
    double startBal;
    cout << "Enter your account balance " << endl;
    cin >> startBal;
    return startBal;
}
double GetBal2()
{
    double startBal;
    cout << "Enter the second account balance " << endl;
    cin >> startBal;
    return startBal;
}
double GetTransfer()
{
    double transferAmt;
    cout << "How much would you like to transfer to the second account " << endl;
    cin >> transferAmt;
    return transferAmt;
}

这两条语句完全没有任何作用,很可能是编译器向您发出警告的来源:

    account1.endBal;
    account2.endBal;

此外,我认为您需要在这里实际捕获GetTransfer()的返回值,也许是transferAmt:

        GetTransfer();

您可能需要重新思考整个while循环,特别是考虑到transferAmtaccount1.endBal:的关系

    while (account1.endBal < 0)
    {
        cout << "Error. Account balance can not be negative." << endl;
        GetTransfer();
        if (account1.endBal < 10)
        {
        cout << "Warning. Account balance will be below $10.00 " << endl;
        }
    }

例如,在您知道传输将成功之前,您不希望更新endBal。此外,你的低平衡警告放错了地方。

相关文章: