该程序结束得太早了
The program ends too soon
我正在编写一个程序,其中5名法官在0到10之间输入分数,并在下降最高和最低分数后计算平均值。每次我运行程序时,都只能放置一个分数并停止程序后计算平均值。我不知道我在做什么错。我该如何在收集所有5个分数,下降最高和最低的情况下运行它,然后计算平均水平?这是我的代码:
#include "pch.h"
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
void getjudgescore(double& judge1, double& judge2, double& judge3, double& judge4, double& judge5)
{
for (int judge = 1; judge < 6; judge++)
{
double j = 0;
do
{
cout << "Judge #" << judge << " - Please enter a score between 0.0 and 10.0 : ";
cin >> j;
if (j < 0 || j > 10)
{
cout << "Score must be between 0.0 and 10.0 : ";
cin >> j;
}
} while (j < 0 || j > 10);
switch (judge)
{
case 0: if (judge == 1)
{
judge1 = j;
break;
}
case 1: if (judge == 2)
{
judge2 = j;
break;
}
case 2: if (judge == 3)
{
judge3 = j;
break;
}
case 3: if (judge == 4)
{
judge4 = j;
break;
}
case 4: if (judge = 5)
{
judge5 = j;
break;
}
}
}
}
double findLowest(double& judge1, double& judge2, double& judge3, double& judge4, double& judge5)
{
double lowest = 10;
if (lowest > judge1)
{
lowest = judge1;
}
if (lowest > judge2)
{
lowest = judge2;
}
if (lowest > judge3)
{
lowest = judge3;
}
if (lowest > judge4)
{
lowest = judge4;
}
if (lowest = judge5)
{
lowest = judge5;
}
return lowest;
}
double findHighest(double& judge1, double& judge2, double& judge3, double& judge4, double& judge5)
{
double highest = 0;
if (judge1 > highest)
{
highest = judge1;
}
if (judge2 > highest)
{
highest = judge2;
}
if (judge3 > highest)
{
highest = judge3;
}
if (judge4 > highest)
{
highest = judge5;
}
return highest;
}
double calcScore(double& judge1, double& judge2, double& judge3, double& judge4, double& judge5, double& highest, double& lowest)
{
double total = 0;
double average = 0;
total = judge1 + judge2 + judge3 + judge4 + judge5;
total = total - highest - lowest;
average = total / 3;
cout << "Final Score : " << average;
return average;
}
int main()
{
double judge1 = 0, judge2 = 0, judge3 = 0, judge4 = 0, judge5 = 0;
double totalscore = 0;
double highscore = 0;
double lowscore = 0;
double highest = 0;
double lowest = 0;
getjudgescore(judge1, judge2, judge3, judge4, judge5);
findLowest(judge1, judge2, judge3, judge4, judge5);
findLowest(judge1, judge2, judge3, judge4, judge5);
calcScore(judge1, judge2, judge3, judge4, judge5, highest, lowest);
}
这是您的开关中的if语句,它们都被一个。
在
中switch(judge)
{
case 0: if (judge == 1)
{
judge1 = j;
break;
}
if永远不会评估true,例如情况有效时, judge
为0。
此外,交换机中的if语句是多余的。
相关文章:
- 在没有太多条件句的情况下,我如何避免被零除
- 从udp接收帧对于人脸识别来说太慢
- 为什么在这个代码结束循环中没有得到结束
- 当我的阵列太大时出现分段错误
- 试图对缓存进行跨步测试,但程序并没有结束
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 错误:字符数组的初始值设定项太多
- 对象实例化调用构造函数的次数太多
- 为什么擦除方法会影响结束方法
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- C++:读取.BMP文件时出现问题;文件结束时间早于预期
- 该程序结束得太早了
- QT:使用Qeventloop等待信号,如果信号发射得太早该怎么办
- 当其中一个结束较早的C 时,杀死所有线程
- QFTP 命令完成发送得太早
- C++ 析构函数调用得太早了
- DELETE_ON_CLOSE发生得太早
- C++While循环启动得太早
- c++中While循环执行得太早
- SDL析构函数调用太早