Приносим извинения, если я не правильно форматирую свой вопрос. Я новичок в этом сайте и новичок в программировании.Мой вывод не отображается правильно
В настоящее время я работаю над назначением C, и я считаю, что у меня есть большая часть кода, но есть некоторые настройки, которые я не могу понять. Буду признателен за любые отзывы. Вот мой код
#include <stdio.h>
#include <stdlib.h>
#define SENTINAL -1
double sumOfScores = 0;
double examScore = 0;
double sumOfExams = 0;
double average = 0;
double calculateAverage();
double main(void)
{
int i;
for (i = 1; i <= 4; ++i)
{
calculateAverage();
}
return 0;
}
double calculateAverage()
{
printf("Enter %d to terminate program. \n", SENTINAL);
while(examScore != SENTINAL)
{
printf("Enter test score: \n");
scanf("%lf", &examScore);
sumOfScores += examScore;
sumOfExams++;
average = sumOfScores/sumOfExams;
}
printf("The average of the test scores entered thus far is %.2lf \n\n", average);
return 0;
}
Вот мой выход
Enter -1 to terminate program.
Enter test score:
99
Enter test score:
98
Enter test score:
97
Enter test score:
96
Enter test score:
-1
The average of the test scores entered thus far is 77.80
Enter -1 to terminate program.
The average of the test scores entered thus far is 77.80
Enter -1 to terminate program.
The average of the test scores entered thus far is 77.80
Enter -1 to terminate program.
The average of the test scores entered thus far is 77.80
Вот что я хотел бы, чтобы это выглядело как
Enter -1 to terminate program.
Enter test score:
99
Enter test score:
98
Enter test score:
97
Enter test score:
96
Enter test score:
-1
The average of the test scores entered thus far is 77.80
Enter -1 to terminate program.
Enter test score:
95
Enter test score:
94
Enter test score:
93
Enter test score:
92
Enter test score:
-1
The average of the test scores entered thus far is (avg goes here)
я не включил еще два набора чисел в выход, который я собираюсь, но я хотел бы иметь возможность сделать это с четырьмя наборами чисел. Как только я вхожу (-1), чтобы завершить первый набор чисел, он автоматически выплескивает меня из среднего значения первого набора для остальных 3 наборов, прежде чем я могу даже ввести числа, которые я хотел бы ввести для них. Кроме того, почему это дает мне avg 77.8 для первого набора значений, когда он должен быть в 90-х годах?
После того, как вы «завершили» функцию 'calculateAverage', каково значение' examScore'? Решение состоит в том, чтобы не использовать глобальные переменные. –
Благодарим @JoachimPileborg за быстрый ответ. Я сделал, как вы сказали (а также то, что сказал другой пользователь), и он исправил одну из проблем. Но значение «среднего», которое я получаю, по-прежнему не соответствует действительности. – lopezgera92
'double main (void)' ??? Делает изменение от 'void main()' Я полагаю ... –