Я новичок в программировании и пытаюсь завершить упражнение по программированию, в котором учитель (пользователь) будет вводить оценки и будет непрерывно получать подсказки, пока они не введут "-1".Когда оно будет введено, запрос будет завершен, и он должен будет вывести среднее значение всех введенных пользователем оценок, а также самый высокий и самый низкий введенные оценки.
Вот код, который у меня есть.
#include <stdio.h>
int main()
{
unsigned int counter;
float average;
int grade, total, max, min;
total=0;
counter=0;
max=100;
min=0;
printf("Please enter grades, enter -1 to stop\n");
scanf ("%d", &grade);
max=min=grade;
while ( grade !=-1 ) {
total = total+ grade;
counter= counter +1;
if (grade > max)
max = grade;
if (grade < min)
min = grade;
printf("Please enter grades, enter -1 to stop\n");
scanf ("%d", &grade);
max=min=grade;
}
if ( counter !=0 ) {
average = (float) total / counter;
printf("Your average is %.2f\n",average);
printf("Your highest grade is %d\n", max);
printf("Your lowest grade is %d\n", min);
}
else {
printf("No grades were entered\n");
}
}
Вот пример ввода, который получается из кода:
Please enter grade, enter -1 to stop
95
Please enter grade, enter -1 to stop
87
Please enter grade, enter -1 to stop
-1
Your average is 91.00
Your highest grade is -1
Your lowest grade is -1
Я не могу понять, почему он не отображает правильные значения, при этом 95 - самое высокое, а 87 - самое низкое в этом случае.,Буду признателен за любую помощь, поскольку это единственная часть программы, которую мне нужно решить.
Спасибо.