我有三个数组:一个字符串,一个int和一个double。我需要通过从main函数调用它们到另一个函数来输出它们的内容。当我尝试构建程序时,displayEmployeeInformation中出现“找不到标识符”的错误。这是我的代码:
#include <iostream>
#include <string>
using namespace std;
const int numEmp = 5;
string names [numEmp];
int ages [numEmp];
double salaries [numEmp];
int main () {
const int numEmp = 5;
string names [numEmp];
int ages [numEmp];
double salaries [numEmp];
for (int i = 0; i < numEmp; i++) {
cout << "Enter Employee #" << i+1 << " Name: ";
cin >> names [i];
cout << "Enter Employee #" << i+1 << " Age: ";
cin >> ages [i];
cout << "Enter Employee #" << i+1 << " Salary: ";
cin >> salaries [i];
}
displayEmployeeInformation (names, ages, salaries, 5);
getchar();
getchar();
return 0;
}
int displayEmployeeInformation (string names [], int ages [], double salaries [], int size) {
for (int x = 0; x < numEmp; x++) {
cout << "Employee #" << x+1 << " Name: " << names [x] << ", Age: " << ages [x] << ", Salary: " << salaries [x];
}
return 0;
}
答案 0 :(得分:4)
您需要为该函数添加函数原型。把这一行
int displayEmployeeInformation (string names [], int ages [], double salaries [], int size);
以上int main()
。
或者,将整个函数定义放在int main()
上面。
答案 1 :(得分:0)
正如Bathsheba在一个很好的答案中已经指出的那样,将函数定义放在main
之上或声明一个函数原型。
我还认为你的函数返回类型可能是void
,因为你没有对返回的值做任何事情:
void displayEmployeeInformation(string names [], int ages [],
double salaries [], int size) {
for (int x = 0; x < numEmp; x++) {
cout << "Employee #" << x+1 << " Name: " << names [x]
<< ", Age: " << ages [x] << ", Salary: " << salaries [x];
}
}
答案 2 :(得分:0)
首先考虑到你定义了两次相同名称的数组:在全局命名空间和函数main的块范围内
//...
const int numEmp = 5;
string names [numEmp];
int ages [numEmp];
double salaries [numEmp];
int main () {
const int numEmp = 5;
string names [numEmp];
int ages [numEmp];
double salaries [numEmp];
/...
您可以勇敢地删除全局命名空间中的定义。:)
对于函数调用,函数声明应出现在函数使用之前。
您可以在main或main main之前放置函数声明,但无论如何在函数调用之前。例如
int displayEmployeeInformation (string names [], int ages [], double salaries [], int size);
int main () {
此函数也可以被decalred为类型为void,因为返回的值没有多大意义。
该函数可以声明为
void displayEmployeeInformation ( const string names [], const int ages [], const double salaries [], int size);
同样最好定义一个包含名称,年龄和薪水数据成员的结构数组。