C++ 循环不工作
当我运行该程序时,它会将其平均化,但不会循环!有没有人看到我做错了什么,给我指出了正确的方向C++ 循环不工作,c++,visual-c++,C++,Visual C++,当我运行该程序时,它会将其平均化,但不会循环!有没有人看到我做错了什么,给我指出了正确的方向 #include <iostream> #include <iomanip> using namespace std; //function prototypes void getTestScores(double &score1, double &score2, double &score3); double calcAverage(double
#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
#包括
#包括使用名称空间标准;
//功能原型
无效getTestScores(双倍得1分,双倍得2分,双倍得3分);
双倍平均得分(双倍得分1,双倍得分2,双倍得分3);
平均值(双平均值);
int main()
{
//声明变量
双倍得分1=0.0;
双倍得分2=0.0;
双倍得分3=0.0;
双平均值=0.0;
//以定点表示法显示平均值
获得最高分(1分、2分、3分);
平均钙含量;
显示平均值;
//输入分数
而(平均值=-1);
{
cout>1分;
cout>2分;
cout>3分;
平均得分(1分、2分、3分);
显示平均值;
返回0;
}
}//主函数结束
//*****功能原型******
无效getTestScores(双倍计分1、双倍计分2、双倍计分3)
{
cout>1分;
cout>2分;
cout>3分;
}//结束
双倍平均得分(双倍得分1,双倍得分2,双倍得分3)
{
双平均=0.0;
平均值=平均值(1分、2分、3分);
收益率平均值;
}//分类结束
无效显示平均值(双平均值)
{
cout你的while()
循环后有一个分号。尝试删除它。你的while()
循环后有一个分号。尝试删除它。你的while
块中有return
。return停止一切,包括循环。只有Python(AFAIK)允许将return放入循环并使其循环。您的中有return
while
块。return停止一切,包括循环。只有Python(AFAIK)允许将return放入循环并使其循环。@Katie:您的代码甚至编译了吗?您的平均值(avg);函数调用与您定义它的方式不同。您是否忘记为具有(相同名称)签名CalAverage(double)的重载函数添加代码
顺便说一句,删除while()后面的分号,它可能会正常运行。检查完我上面的问题后,请尝试此操作。@Katie:您的代码是否编译过?您的CalAverage(avg);函数调用与您定义它的方式不同。您是否忘记为具有(同名)签名CalAverage(double)的重载函数添加代码
顺便说一句,删除while()后面的分号,它可能会正常运行。请在检查我上面的问题后尝试此操作。Return将结束循环,并将控件返回到调用函数的位置。。
另外,在循环体中似乎没有重新初始化avg?返回avg但不存储它
应该是
avg = calcaAverage(1,2,3)
Return将结束循环,并将控制返回到调用函数的位置。。
另外,在循环体中似乎没有重新初始化avg?返回avg但不存储它
应该是
avg = calcaAverage(1,2,3)
在每个代码语句之前使用4个空格,或者只选择整个代码,然后单击编辑器选项卡上的“显示”{}
即可。为什么您希望在calaverage
中使用三个参数,如下double-calaverage(double&score1,double&score2,double&score3);
但给出一个类似于calaverage(avg)的参数我不是一个C++的男孩,如果我问的是NoOB,我很抱歉。我认为你应该删除<代码>;<代码> >代码>(avg!= 1)< /> >(avg!= -1):不要直接比较浮点数字(参见)Emre我声明它们的原因是因为两个空格必须匹配!当我定义函数原型时:如果我只声明avg.并计算分数,则在每个代码语句之前有4个空格,或者只选择整个代码并单击{}
出现在编辑器选项卡上。为什么您希望calaverage
中有三个参数像这样double-calaverage(double&score1,double&score2,double&score3);
但是给出一个这样的参数calaverage(avg)我不是一个C++的男孩,如果我问的是NoOB,我很抱歉。我认为你应该删除<代码>;<代码> >代码>(avg!= 1)< /> >(avg!= -1):不要直接比较浮点数字(参见)Emre我之所以声明它们是因为两个空洞必须匹配!当我定义函数原型时:如果我只声明平均值并计算分数,就会出现错误