gpt4 book ai didi

c++ - 改变 switch() 中的数据,累积

转载 作者:行者123 更新时间:2023-11-28 07:47:50 26 4
gpt4 key购买 nike

我正在做一个用 C++ 刺激 ATM 的项目,但在使用累加器时遇到了一些问题,我的问题是:我正在使用开关(这里是情况 1)来更改在包含的函数中声明的 2 个变量的值switch(),但是值只在情况 1 内发生变化,并且它们将自身重置为原始值(如 const 声明),因此当我尝试打印检查和保存(在情况 3 和 4 中)时,它会打印出原始数量(1000)。所以我不知道我在这里做错了什么。问题不在于数量,我尝试用数值替换数量,但仍然不起作用。请帮忙

int transactions()
{
double checking = 1000.00, saving = 1000.00;
double amount;
switch (inputRange(menu()))
{
case 1: system("cls");
amount = getAmount("Enter an amount to transfer from checking to saving: ");
checking -= amount;
saving += amount;
cout << checking << " " << saving; // they only change inside case 1
cout << "\nTransaction completed! \n\nPress ENTER to return to main menu...";
cin.ignore(99,'\n');
break;

更新*** 我已经知道了,谢谢,只是忘记了 &,这行得通

   int transactions(double &checkBal, double &saveBal)
{
double amount;

//set precision
cout << fixed << showpoint << setprecision(2);

switch (inputRange(menu()))
{
case 1: system("cls");
checkingToSaving (getAmount("Enter an amount to transfer from checking to saving: "), checkBal, saveBal);
cout << "\nTransaction completed! \n\nPress ENTER to return to main menu...";
cin.ignore(99,'\n');
break;

最佳答案

问题是 checkingsaving 仅在对 transactions() 的单个调用期间存在。

它们在 transactions() 被调用时出现,被初始化,您的代码更改它们,它们在 transactions() 返回时消失。当再次调用该函数时,整个循环重复。

这两个变量需要存在于函数之外(可能作为某个类的数据成员)。

关于c++ - 改变 switch() 中的数据,累积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14535188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com