Nested Loops - 04. Train The Trainers
Добър вечер , имам нужда от малко помощ , да намеря грешката си .
Условието на задачата е :
Курсът "Train the trainers" е към края си и финалното оценяване наближава. Вашата задача е да помогнете на журито което ще оценява презентациите, като напишете програма в която да изчислява средната оценка от представянето на всяка една презентация от даден студент, а накрая средният успех от всички тях.
От конзолата на първият ред се прочита броят на хората в журито n - цяло число в интервала [1…20]
След това на отделен ред се прочита името на презентацията - текст
За всяка една презентация на нов ред се четат n - на брой оценки - реално число в интервала [2.00…6.00]
След изчисляване на средната оценка за конкретна презентация, на конзолата се печата
"{името на презентацията} - {средна оценка}."
След получаване на команда "Finish" на конзолата се печата "Student's final assessment is {среден успех от всички презентации}." и пограмата приключва.
Всички оценки трябва да бъдат форматирани до втория знак след десетичната запетая.
Примерен вход и изход
Вход Изход Обяснения
2
While-Loop
6.00
5.50
For-Loop
5.84
5.66
Finish
2 – броят на хората в журито следователно ще получаваме по 2 оценки на презентация.
(6.00 + 5.50) / 2 = 5.75
(5.84 + 5.66) / 2 = 5.75
(6.00 + 5.50 + 5.84 + 5.66) / 4 = 5.75
Вход Изход Вход Изход
3
Arrays
4.53
5.23
5.00
Lists
5.83
6.00
5.42
Finish
Arrays - 4.92.
Lists - 5.75.
Student's final assessment is 5.34.
2
Objects and Classes
5.77
4.23
Dictionaries
4.62
5.02
RegEx
2.88
3.42
Finish
Objects and Classes - 5.00.
Dictionaries" - 4.82.
RegEx - 3.15.
Student's final assessment is 4.32.
Решението ми :
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int main()
{
int people;
cin >> people;
string namePresent;
cin >> namePresent;
double averageGrade = 0;
double gradeCounter = 0;
double counter = 0;
double sumGrade = 0;
double allGrade = 0;
cout.setf(ios::fixed);
cout.precision(2);
while (namePresent != "Finish") {
sumGrade = 0;
for (gradeCounter = 1.00; gradeCounter <= people; gradeCounter++) {
double grade;
cin >> grade;
cin.ignore();
allGrade += grade;
sumGrade += grade;
counter++;
if (gradeCounter == people) {
averageGrade = sumGrade / people;
break;
}
}
if (namePresent != "Finish") {
cout << namePresent << " - " << averageGrade << "." << endl;;
}
getline(cin, namePresent);
}
if (namePresent == "Finish") {
double totalGrade = allGrade / counter;
cout << "Student's final assessment is " << totalGrade << ".";
}
}
- става безкраен цикъл и не спира , а по другия начин , по който опитах ми изяжда първата дума , от името на презентацията .
ако някой ми го обясни , ще съм много благодарна :))).