【发布时间】:2025-12-14 19:50:01
【问题描述】:
例如,如果我输入 20 5 次,那么我应该得到 sum 为 100,但我得到的是 99。它一直在发生,我得到 sum-1。
代码如下:
#include <iostream>
using namespace std;
int main() {
double sum = 0, marks = 0, count = 0;
cout << " Enter the marks, enter -1 if you want to stop: " << endl;
while (marks >= 0) {
cin >> marks;
sum = sum + marks;
if (marks != -1) {
count = count + 1;
}
}
cout << "count= " << count << " sum=" << sum
<< endl; // Why i am getting sum-1 in here?
if (sum == -1) {
cout << "Please enter atleast 2 marks to calculate the average." << endl;
} else {
double average = sum / count;
cout << "Average of all the marks is: " << average << endl;
}
return 0;
}
【问题讨论】:
-
提示:如果
marks不等于-1,您只添加到count。添加到sum怎么样? -
退出循环时添加 -1。例外,因此不添加 -1。
-
细节很重要:“例如,如果我输入 20 5 次”您实际输入的是
20 20 20 20 20 -1并且您计算所有这些数字的总和