c++ - 如何在do while循环中输出正的最小数字?
问题描述
当我需要输出一个最小正数时,程序会输出一个最小负数。负数是结束数据输入。
#include <iostream>
using namespace std;
int main() {
int totalNumber, max, min, score = 0, sum = 0;
float avrg;
do {
sum = sum + score;
cout << "Enter score " << ++totalNumber <<": ";
cin >> score;
if (score < min) {
min = score;
}
if (score > max){
max = score;
}
}
while(score >= 0);
totalNumber -= 1;
avrg = sum / totalNumber;
cout << " You entered " << totalNumber << " scores" <<endl;
cout << " Maximum score = " << max << endl;
cout << " Minimum score = " << min << endl;
cout << " Average score = " << avrg << endl;
return 0;
}
解决方案
除了评论中提到的几点,我认为当你收到负值时你应该跳出循环。并在读取后添加 sum 值score
。这是您修改后的循环的样子:
do {
cout << "Enter score " << ++totalNumber <<": ";
cin >> score;
sum = sum + score;
if (score < 0) { // Negative value; Exit from loop
cout << "exiting..." << endl;
break;
}
if (score < min) {
min = score;
}
if (score > max){
max = score;
}
} while(score >= 0);
当我尝试这个时,它似乎按预期工作:
src : $ g++ posititveminimum.cpp
src : $ ./a.out
Enter score 1: 48
Enter score 2: 60
Enter score 3: 78
Enter score 4: 91
Enter score 5: 67
Enter score 6: -1
You entered 5 scores
Maximum score = 91
Minimum score = 48
Average score = 68
推荐阅读
- database - 计算内存块中的可用空间
- python - 在python中使用卡方检验对一列进行正态性检验
- java - 带有 javafx-fxml.jar 的 Intellij 和 openjdk 8 在 linux mint 中无法正常工作
- bash - aws s3 cli 与实时观看文件夹同步
- excel - 如何在 For .. Do 循环中重置变量?
- php - WooCommerce 预购产品的条件标签
- android - 在带有图像的自定义按钮中添加边距
- python - 第二次运行的问题:石头,纸,剪刀问题 - Python
- asp.net-mvc - {“一个或多个实体的验证失败。有关详细信息,请参阅 'EntityValidationErrors' 属性。”}
- python - MongoDB M0 集群,python 多线程