Проверка входных данных в c++.
Ниже приведен мой код, и программа работает нормально, пока я не введу что-нибудь, кроме номера. Проблема возникает во время входной проверки оценки.
#include <iostream> #include <iomanip> using namespace std; int main() { int counter = 0; double score, averagescore, totalscore = 0.0; cout << "Enter the score of a student, or -1 if no more students are left.\n"; cin >> score; while (score < -1 || score > 100) { cout << "\nThat is not a valid answer please enter a percent between -1 and 100\n"; cin >> score; } while (score != -1) { totalscore += score; cout << "\nEnter the score of a student, or -1 if no more students are left.\n"; cin >> score; while (score < -1 || score > 100) { cout << "\nThat is not a valid answer please enter a percent between -1 and 100\n"; cin >> score; } counter++; } averagescore = totalscore / counter; cout << "\nThe average score of the class is: " << averagescore << '%' << endl; }
Что я уже пробовал:
Я попытался посмотреть, нет ли каких-нибудь логических ошибок, и ни одна из них не пришла мне в голову, хотя я просматривал ее несколько раз. Я предполагаю, что это логическая ошибка, но я не уверен, что я должен сделать, чтобы сделать это так, чтобы эта проверка ввода принимала только числа от -1 до 100.