繁体   English   中英

数组类型'int [8]'是不可分配的

[英]array type 'int [8]' is not assignable

在此问题上停留了很长时间并且无法找到解决方案,不断出现错误消息数组类型'int [8]'是不可分配的。 也告诉我,数组条目“表达式必须是可修改的左值”,我试图多次查找并且似乎什么也没想到,任何帮助都是有用的:)使用命名空间std;

const int MAXACCOUNTS = 8;


int main()

{
cout << "Welcome" << endl;
int counter = 0;
int counter1 = 0;
int interest_counter = 0;

struct Account
{
    int AccountNumber[MAXACCOUNTS] ;
    double Balance[MAXACCOUNTS];
    int DaySinceDebited[MAXACCOUNTS];
};

Account entries[MAXACCOUNTS];

while (counter1 != MAXACCOUNTS)
{
    if (counter1 = 0)
    {
        entries[counter1].AccountNumber = 1001;
        entries[counter1].Balance = 4254.40;
        entries[counter1].DaySinceDebited = 20;
        counter += 1;
    }
    else if (counter1 = 1)
    {
        entries[counter1].AccountNumber = 7940;
        entries[counter1].Balance = 27006.25;
        entries[counter1].DaySinceDebited = 35;
        counter += 1;
    }
    else if (counter1 = 2)
    {
        entries[counter1].AccountNumber = 4382;
        entries[counter1].Balance = 123.50;
        entries[counter1].DaySinceDebited = 2;
        counter += 1;
    }
    else if (counter1 = 3)
    {
        entries[counter1].AccountNumber = 2651;
        entries[counter1].Balance = 85326.92;
        entries[counter1].DaySinceDebited = 14;
        counter += 1;
    }
    else if (counter1 = 4)
    {
        entries[counter1].AccountNumber = 3020;
        entries[counter1].Balance = 657.00;
        entries[counter1].DaySinceDebited = 5;
        counter += 1;
    }
    else if (counter1 = 5)
    {
        entries[counter1].AccountNumber = 7168;
        entries[counter1].Balance = 7423.34;
        entries[counter1].DaySinceDebited = 360;
        counter += 1;
    }
    else if (counter1 = 6)
    {
        entries[counter1].AccountNumber = 6245;
        entries[counter1].Balance = 4.99;
        entries[counter1].DaySinceDebited = 1;
        counter += 1;
    }
    else if (counter1 = 7)
    {
        entries[counter1].AccountNumber = 9342;
        entries[counter1].Balance = 107864.44;
        entries[counter1].DaySinceDebited = 45;
        counter += 1;
    }

}

cout << "Acct No   Balance   Interest Paid" << endl; 

while (counter != MAXACCOUNTS)
{
    cout << entries[counter].AccountNumber << "   " << entries[counter].Balance << "  " << entries[counter].DaySinceDebited << endl;
    counter += 1; 
}
return 0;
}

您已经将AccountNumberBalanceDaySinceDebited为数组,但是尝试为它们分配单独的值。 您将它们视为不是数组,因为从逻辑上讲,将它们作为数组没有意义。 请记住,您有多个帐户(一组帐户),但是每个帐户只有一个AccountNumber,Balance等。不要将它们制成数组。 而是将它们声明为:

int AccountNumber;
double Balance;
int DaySinceDebited;

另外,在每个if ,都需要使用==进行比较。 截至目前,您的陈述如下:

else if (counter1 = 1) {
                 ^^^

这会将值1分配给counter1 ,然后检查其值是否为true。 由于所有整数(0除外)在C ++中均评估为true,因此将始终运行该整数。 将其更改为:

else if (counter == 1) {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM