结构体上未加声明的标识符

Underclared identifier on struct

本文关键字:标识符 声明 结构体      更新时间:2023-10-16

第4行代码有两个错误:

'Account'是未声明的标识符标识符"accounts"前缺少")"

帮助解决这些错误将是伟大的,我已经尝试过,但短,新的结构

#include <iostream>
using namespace std;
const int MAXACCOUNTS = 8;
int interest(Account accounts[], int MAXACCOUNTS);

struct Account
{
int Number;
double Balance;
int DaysSinceDebited;
};
int main()
{
int Accountnumber;
double Balance;
int DaysSinceDebited;
Account accounts[MAXACCOUNTS];
accounts[0].Number = 1001;
accounts[0].Balance = 4254.40;
accounts[0].DaysSinceDebited = 20;
accounts[1].Number = 7940;
accounts[1].Balance = 270006.25;
accounts[1].DaysSinceDebited = 35;
accounts[2].Number = 4382;
accounts[2].Balance = 123.50;
accounts[2].DaysSinceDebited = 2;
accounts[3].Number = 2651;
accounts[3].Balance = 85326.92;
accounts[3].DaysSinceDebited = 14;
accounts[4].Number = 3020;
accounts[4].Balance = 657.0;
accounts[4].DaysSinceDebited = 5;
accounts[5].Number = 7168;
accounts[5].Balance = 7423.34;
accounts[5].DaysSinceDebited = 360;
accounts[6].Number = 6285;
accounts[6].Balance = 4.99;
accounts[6].DaysSinceDebited = 1;
accounts[7].Number = 9342;
accounts[7].Balance = 107964.44;
accounts[7].DaysSinceDebited = 45;


system("pause");
}
int interest(Account accounts[], int MAXACCOUNTS) {
int total = 0;
for (int i = 0; i < MAXACCOUNTS; i++)
{
    if (accounts[i].Balance > 10000 || accounts[i].DaysSinceDebited > 30)
    {
        total = accounts[i].Balance / 100 * 1.06;
        cout << "Account Number: " << accounts[i].Number << "Balance " <<  accounts[i].Balance << "DaysSinceDebited " << accounts[i].DaysSinceDebited <<   endl;
    }
    else
    {
        total = accounts[i].Balance / 100 * 1.03;
        cout << "Account Number: " << accounts[i].Number << "Balance " <<  accounts[i].Balance << "DaysSinceDebited " << accounts[i].DaysSinceDebited << endl;
    }
}
return total;

system("pause");
}

Account在您尝试使用它时尚未声明。

你可以简单地添加一个前向声明来使它工作:

struct Account; // now the compiler knows what Account is
int interest(Account accounts[], int MAXACCOUNTS);

或者,将interest的声明移到Account定义之后。