我写了一个简单的平均计算程序,试图计算一个学期的平均值。当我编译代码时,我收到一个错误,告诉我我的'inputExam'函数未在此范围内声明。我已经研究了错误信息,我无法弄清楚如何解决它。
我也为其他功能得到了这个错误,但是一旦我理解了我的错误,我想我可以解决其他问题。
#include <iostream>
using namespace std;
int main()
{
double finalExam=0.0;
double midterm = 0.0;
double quizzes = 0.0;
double labs = 0.0;
double semGrade=0.0;
midterm=inputExam("Midterm");
finalExam=inputExam("Final");
quizzes=inputAndAvgQuizzes();
labs=inputAndAvgLabs();
semGrade=(midterm*.2)+(finalExam*.2)+(labs*.5)+(quizzes*.1);
cout<<"Your End of Semester Grade is: " semGrade;
return 0;
}
double inputExam(string examType)
{
double grade;
cout<< "Enter the " examType " Score: ";
cin>>grade;
return (grade);
}
double inputAndAvgLabs()
{
double num [4];
double sum;
double avg;
if (int a=0, a<3,a++)
{
cout<<"What is the grade?"<<endl;
cin>>num[a]>>endl;
}
if (int a=0, a<3, a++)
{
sum=sum+num[a];
}
avg=sum/4;
return avg;
}
double inputAndAvgQuizzes()
{
double num[3];
double sum;
double avg;
double lowest = num[0];
if (int a=0, a<2,a++)
{
cout<<"What is the grade?"<<endl;
cin>>num[a]>>endl;
}
if (lowest>num[1])
{
lowest=num[1];
}
if (lowest>num[2])
{
lowest=num[2];
}
sum=num[1]+num[2]+num[3]-lowest;
avg=sum/2;
return avg;
}
答案 0 :(得分:4)
您需要知道这些函数是否存在,因此为main
以上的函数添加原型或在那里定义函数。像这样:
...
double inputExam(string examType);
double inputAndAvgLabs();
double inputAndAvgQuizzes();
int main() { ... }
//definitions after main
..或将所有这些定义复制粘贴到main
的调用之上,如下所示:
...
// Function defs here
// Prototypes no longer needed
...
int main() {...}
// Defs no longer needed here
或者,您可以将所有定义放在外部文件中,并通过make
文件将其编译到项目中,或者更好,然后在进行时,在标题和实现文件中创建类并将它们包含在文件中你做#include <iostream>
的方式(一种)。
另一个小建议就是避免using namespace std;
。如果不仅理论上这是不好的做法,并且可能导致大型项目中的命名空间冲突。如果您像我一样,不想输入std::string ...
,那么请将using std::string;
添加到您的代码中以获得相同的易用性。
答案 1 :(得分:2)
在C / C ++中,您需要在使用它之前声明该函数。在这种情况下,它只是意味着在main函数之前声明函数原型,然后在main函数之后实现它们。
示例:
// declare a prototype
double Function(int variable);
int main()
{
Function(5);
return 0;
}
// Implement the function
double Function(int variable)
{
/* Do Something */
}
或者,您可以将代码更改为以下格式:
// Implement the function first
double Function(int variable)
{
/* Do Something */
}
int main()
{
Function("Testing");
return 0;
}