0

我知道这可能看起来很简单,但对我来说没有意义。

我需要做的:我需要在一个函数中提示账户余额A,返回main,在另一个函数中提示账户余额B,返回main,然后我需要将两个变量传递给另一个函数,比较哪个是更大,并将我的指针设置为 balanceA 或 balanceB。然后我需要通过操纵指针在另一个函数中操纵帐户余额。

我对发生的事情的理解:通过将两个变量传递给一个函数,并设置一个指向更大帐户的指针,我可以操纵指针,然后它将操纵 balanceA 或 balanceB 的值,以较大者为准(简单 IF)

我对语法的理解(或缺乏):我需要通过引用传递两个帐户变量,并且在我的比较函数中,我需要创建一个新的指针变量,它将设置为等于更高的帐户余额。

我的主要问题:我在哪里声明我的指针,以及这样做的正确语法是什么。我所有的 & 和 * 都去哪里了?

到目前为止我的代码:

#include <iostream>
using namespace std;

float getBalanceA();
float getBalanceB();

int main()
{
   float balanceA = getBalanceA();
   float balanceB = getBalanceB();

   return 0;
}

float getBalanceA()
{
   float balanceA = 0;

   cout << "What is Sam's balance? ";
   cin >> balanceA;

   return balanceA;
}

float getBalanceB()
{
   float balanceB = 0;

   cout << "What is Sue's balance? ";
   cin >> balanceB;

   return balanceB;
}

在此先感谢您的帮助!

4

1 回答 1

1

使用&(reference operator) 创建指向变量的指针,使用*(dereference operator) 获取给定指针所引用的值。

您正在寻找类似以下内容:

float* getLarger(float* a, float* b)
{
    if (*a > *b) // dereference pointers to compare the values
        return a;
    else
        return b;
}

int main()
{
    float balanceA = getBalanceA();
    float balanceB = getBalanceB();
    float* largerBalance = getLarger(&balanceA, &balanceB); // obtain pointers to balanceA/balanceB and pass them to the getLarger functoin
    *largerBalance += 1; // manipulate the larger balance by dereferencing it
    cout << "Sam's balance: " << balanceA << endl;
    cout << "Sue's balance: " << balanceB << endl;
    return 0;
}
于 2013-06-15T17:34:27.507 回答