Как реализовать прерывание цикла

200
24 марта 2018, 16:52

Как реализовать условие выхода(ввод отрицательного значения при вводе оценки) из цикла, но так чтобы это введеное отрицательное значение не отражалось на расчете на средней оценке ? А также добавить в расчет так чтобы средняя оценка считалась дележкой суммы балов не на пять, а на количество введенных оценок?

for (int i = 0; i < 100; i++) {
std::cout << "Math's score' " << i+1 << ": ";
std::cin >> scores[i];
if(scores[i]<0)
break;
sum += scores[i];
}
student.set_scores(scores);
float average_ball = sum / 5.0;
Answer 1

Это не самостоятельный ответ, а скорее добавление к ответу @МишаковМаксим - можно немного наэкономить на переменных :)

double average_ball;
for (int i = 0, sum = 0;;) {
    std::cout << "Math's score' " << ++i << ": ";
    int score;
    std::cin >> score;
    if(score < 0)
    {
        average_ball = double(sum)/(i-1);
        break;
    }
    sum += score;
}
cout << average_ball << endl;

(увы, в комментарий не втискивается...)

Answer 2
int count = 0;
for (int i = 0; i < 100; i++) {
std::cout << "Math's score' " << i+1 << ": ";
int score;
std::cin >> score;
if(score < 0)
    break;
scores[i] = score;
sum += score;
count++;
}
student.set_scores(scores);
float average_ball = sum / count;
READ ALSO
QModBusTcp + HoldingRegisters

QModBusTcp + HoldingRegisters

Добрый день! Прошу помощи, так как я не могу понять почему такПроблема заключается в количестве считаных HoldingRegisters

218
QScopedPointer кастомный deleter

QScopedPointer кастомный deleter

Ничего не понимаю, каким образом мне передать в конструктор QScopedPointer функцию deleter'a, как я это делал в std::unique_ptr?

164
C++ Ошибка exception from hresult 0x80041fe2 visual studio

C++ Ошибка exception from hresult 0x80041fe2 visual studio

При создании любого проекта, консольного, классического, вылезает такая ошибка, может кто сталкивался с такой проблемой? C# работает прекрасно,...

416