[英]Not declared in Scope
我寫了一個簡單的平均計算程序,試圖計算一個學期的平均值。 當我編譯代碼時,我收到一個錯誤,告訴我我的'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;
}
您需要知道這些函數是否存在,因此為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;
添加using std::string;
為您的代碼提供相同的易用性。
在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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.