Программа требует, чтобы пользователь вводил числа, а когда закончил, выходил из цикла, вводя отрицательное число. Затем программа выведет среднее число и количество чисел. Отрицательное число должно быть удалено из серии, хотя. Таким образом, если у нас есть три числа и мы выйдем на (четвертое) отрицательное число, среднее будет только из трех чисел и не будет включать отрицательное число. Аккуратно, я как-то сделал эту работу. Теперь мне нужно расширить это, чтобы сделать так, чтобы входные данные были проверены на целочисленное значение и меньше 100 также с использованием булевого уравнения. Именно в этот момент я не могу определить, как исключить ошибочные данные из результатов.
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
float inScore= 1;
float sumScore= 0.0;
int scoreCount= 0;
float avgScore= 0.0;
bool moreNumbers = true;
bool notNumbers = true;
for ( inScore =1; inScore >=1; inScore++) //for loop some kind of blackmagic not really sure about this right now
{
cout << "Please enter grades (enter a negative integer to exit): ";
cin >> inScore;
if (!cin || inScore > 100)
{
notNumbers = false; //boolean to ignore non integers or numbers greater than 100
cin.clear();
cin.ignore(256, '\n');
scoreCount--;
cout << "Invalid number!" << endl;
} //something is wrong in this section and I can't get it to ignore the invalid inputs
else if (inScore < 0)
{
moreNumbers = false;
} //breaks the loop upon a negative number being entered
else
sumScore+=inScore;
scoreCount++;
}
avgScore = (sumScore+=inScore)/(scoreCount-1);
cout << "Number of Grades: " << scoreCount-1 << endl; //number of entries
cout << "Average: " << avgScore << endl; // average grade except I cannot figure out how to remove negative number from the array
return 0;
}