Я застрял на последней части своего домашнего задания и надеюсь, что смогу получить некоторые рекомендации о том, что делать. Задание простое, я создаю программу, которая просит пользователя вводить результаты тестов до тех пор, пока они не введут значение моего дозорного -1. Затем на выходе отображается среднее значение всех вмененных баллов, которое должно повторяться 4 раза после выхода из программы. Все работает, кроме моего значения счетчика. Счетчик продолжает подсчитывать вмененные оценки как из предыдущего, так и из текущего цикла, а не только из текущего цикла. Таким образом, в итерации 2 он дает мне среднее значение всех входных данных из первого цикла и текущего цикла.
Примечание: я еще не узнал о массивах или о каком-либо другом супервысоте.
Я уже инициализировал переменную count в 0, но я не могу понять, почему она не сбрасывается в каждом цикле. Я переместил count = 0 после цикла и перед циклом, и это ничего не делает.
#include <stdio.h>
float calculateAverage(float, float);
FILE *fp;
int main(void)
{
int i;
float avg, score, sum = 0, count = 0;
fopen_s(&fp, "csis.txt", "w");
printf("***Average of Inputed Grades***\n");
for (i = 1; i <= 4; ++i)
{
do
{
printf("\nEnter Test Scores or -1 for average\n");
scanf_s("%f", &score);
fprintf(fp, "\nEnter Test Scores or -1 for average\n%f\n", score);
if (score != -1)
{
sum = sum + score;
count++;
}
} while (score >= 0 && score <= 100 && score != -1);
avg = calculateAverage(sum, count);
printf("\nThe Average for the entered test scores is:%.2lf\n", avg);
fprintf(fp, "\nThe Average for the entered test scores is:%.2lf\n", avg);
}
fclose(fp);
getchar();
return 0;
}
float calculateAverage(float sum, float count)
{
float avg = sum / count;
return (avg);
}
Ожидаемые результаты должны отображать среднее значение вмененных тестовых баллов только для текущей итерации, а затем сбрасываться при следующей итерации.