Как сказал Джон 3136, вы не отслеживаете пройденные мили.Вы сканируете в милях, но не отслеживаете сумму миль.Ваше среднее значение - это просто ваши последние введенные мили, разделенные на 7.
Вот предлагаемое решение:
int main(void)
{
// variable definition
int days = 0;
float avg = 0, miles = 0;
// Loop through to input values
while(days < 7)
{
printf("Enter the number of miles for each day walked: ");
scanf("%f", &miles);
avg += miles;
days++;
}
avg /= days;
printf("average is %.2f\n " , avg);
return 0;
}
С помощью Джонатана Леффлера вот улучшенная версия предыдущего кода:
#include <stdio.h>
int main(void)
{
// variable definition
int days = 0;
double miles = 0.0, total_miles = 0.0;
// Loop through to input values
while(days < 7)
{
printf("Enter the number of miles for day %d: ", days + 1);
if(!scanf("%lf", &miles))
return -1;
total_miles += miles;
days++;
}
printf("Total miles: %.2lf / %d Days = %.2lf Average miles per day.\n",
total_miles, days, (days > 0) ? total_miles / days : 0.0);
return 0;
}