C++ 如何使用银行程序修复XCODE中的线程1:EXC_BAD_ACCESS(代码=1,地址=0x7ffeefc0000)?

C++ 如何使用银行程序修复XCODE中的线程1:EXC_BAD_ACCESS(代码=1,地址=0x7ffeefc0000)?,c++,C++,我被要求完成以下挑战: 我得到的完成此任务的代码是: 这是我的密码: #include <iostream> using namespace std; const int MAXACCOUNTS =8; int main() { int AccountNumber[MAXACCOUNTS] = {1001, 7940, 4382, 2651, 3020, 7168, 6245, 9342}; double Balance[MAXACCOUNTS] = {4254.40,

我被要求完成以下挑战:

我得到的完成此任务的代码是:

这是我的密码:

#include <iostream>
using namespace std;
const int MAXACCOUNTS =8;
int main()
{
   int AccountNumber[MAXACCOUNTS] = {1001, 7940, 4382, 2651, 3020, 7168, 6245, 9342};
   double Balance[MAXACCOUNTS] = {4254.40, 27006.25, 123.50, 85326.92, 657.0, 7423.34, 4.99, 107864.44};
    int DaysSinceDebited[MAXACCOUNTS] = {20, 35, 2, 14, 5, 360, 1, 45};
    int i;
    for (i = 0; (i < Balance[MAXACCOUNTS - 1]); i++)
    {
        if ((Balance[i] > 10000) || (DaysSinceDebited[i] > 30))
        {
            Balance[i] = Balance[i] * 1.06;
        }
        else
        {
            Balance[i] = Balance[i] * 1.03;
        }
    }
    cout << Balance[i];

    return 0;
}
我正在编程XCODE,这基本上是我第一次这么做,但我收到了错误:线程1:EXC_BAD_ACCESS code=1,address=0x7ffeefc0000,在第21行,我是否错误地执行了or语句,或者它正在访问内存不足的地方

第2部分:

如何显示以下信息:


for循环中的测试条件非常奇怪!您只需要使用值从0到MAXACCOUNTS-1的i循环

因此,与此相反:

对于i=0;i<余额[MAXACCOUNTS-1];i++//与任何余额的值无关! 简单地说:

对于i=0;我有两个帐户;我++ 目前,for循环的i值将达到107863,取Balance[7]的值并截断为int,当然,这将远远超出数组的实际边界


此外,正如评论中指出的,您需要将cout放在for循环中的测试条件非常奇怪!您只需要使用值从0到MAXACCOUNTS-1的i循环

因此,与此相反:

对于i=0;i<余额[MAXACCOUNTS-1];i++//与任何余额的值无关! 简单地说:

对于i=0;我有两个帐户;我++ 目前,for循环的i值将达到107863,取Balance[7]的值并截断为int,当然,这将远远超出数组的实际边界


另外,正如在评论中指出的,您需要将cout放在cout行中,cout行仍将访问边界。好的,现在已经解决了这个问题,挑战的第二部分是将三个数组转换为结构,我该怎么做@阿德里安Mole@1201好样的!我错过了,但是请看编辑。另外,你知道现在如何显示问题图片中显示的结果吗,它在第2部分下@AdrianMole@Henry没问题!现在,我的建议是,你可以“清理”删除这里不再需要的评论,或者“社区”可以为你这样做,否则,在你的新问题中也提到这是对这一问题的后续行动。我会努力寻找答案,但我想小心遵守“家庭作业”的指导原则。刚才电视上还有我最喜欢的节目,请给我一些时间!cout行仍将访问出界。好的,现在已经修复了,挑战的第二部分是将三个数组转换为结构,我将如何执行此操作@阿德里安Mole@1201好样的!我错过了,但是请看编辑。另外,你知道现在如何显示问题图片中显示的结果吗,它在第2部分下@AdrianMole@Henry没问题!现在,我的建议是,你可以“清理”删除这里不再需要的评论,或者“社区”可以为你这样做,否则,在你的新问题中也提到这是对这一问题的后续行动。我会努力寻找答案,但我想小心遵守“家庭作业”的指导原则。刚才电视上还有我最喜欢的节目,请给我一些时间!哪一行是21?别担心,我的循环是错误的,但是第21行是'if'语句哪一行是21?别担心,我的循环是错误的,但是第21行是'if'语句