当我运行该程序时,它最终将其平均但它不会循环!有没有人看到我做错了什么,并指出我正确的方向
#include <iostream>
#include <iomanip> using namespace std;
//function prototypes
void getTestScores(double &score1, double &score2, double &score3);
double calcAverage(double &score1, double &score2, double &score3);
void displayAverage(double avg);
int main()
{
//declare variables
double score1 = 0.0;
double score2 =0.0;
double score3 = 0.0;
double avg = 0.0;
//display average in fixed-point notation
getTestScores(score1,score2,score3);
calcAverage(avg);
displayAverage(avg);
//enter scores
while (avg != -1 );
{
cout << "score 1 (negative number to stop): ";
cin >> score1;
cout << "Enter score 2(negative number to stop): ";
cin >> score2;
cout << "Enter score 3(negative number to stop): ";
cin >> score3;
calcAverage(score1, score2, score3);
displayAverage(avg);
return 0;
}
} //end of main function
//*****function prototypes*****
void getTestScores(double &score1, double &score2, double &score3)
{
cout << "Enter score 1(negative numberto stop): ";
cin >> score1;
cout << "Enter score 2(negative number to stop): ";
cin >> score2;
cout << "Enter score 3(negative number to stop): ";
cin >> score3;
} //end
double calcAverage (double &score1, double &score2, double &score3)
{
double average = 0.0;
average = calcAverage(score1, score2, score3);
return average;
} //end of clacAverage
void displayAverage(double avg)
{
cout << fixed << setprecision(1);
cout << "Average: " << avg << endl;
} //end
答案 0 :(得分:7)
while()
循环后有一个分号。尝试删除它。
答案 1 :(得分:4)
您return
阻止了while
。返回会停止一切,包括循环。只有Python(AFAIK)允许循环返回并让它循环。
答案 2 :(得分:0)
@Katie:您的代码甚至可以编译吗?您的calcAverage(平均);函数调用与您定义它的方式不同。您是否忘记使用(同名)签名calcAverage(double)???
为重载函数添加代码BTW,在while()之后删除分号,它可能运行正常。检查上面的问题后试试这个。
答案 3 :(得分:0)
返回将结束循环并将控制返回到调用函数的位置。 此外,你似乎没有在循环体中再次初始化avg?你返回平均但不存储它 应该是
avg = calcaAverage(1,2,3)