Как добавить текущий итог после каждого прохода в цикле while

#c

Вопрос:

Мне нужно выяснить, как непрерывно добавлять к текущему общему количеству mpg в среднем и делить на то, сколько раз оно проходит.

 #include <stdio.h> 
        
int main() { 
    int miles;
    int gallons;
    int mpg;
    int avg;
          
    while (miles != -1) {
        printf("Enter number of miles driven(-1 to quit): ");
        scanf("%d", amp;miles);
        printf("Enter gallons used: ");
        scanf("%d", amp;gallons);
        mpg = miles / gallons;
        avg = mpg;
              
        printf("MPG this trip: %dn", mpg);
        printf("Avg MPG(so far): %dn", avg);
    }
}
 

Комментарии:

1. Просто держи total_miles и total_gallons . Инициализируйте оба для 0 . Добавьте miles и gallons к их соответствующим итоговым значениям. Общее среднее значение будет равно total_miles/total_gallons .

2. внутри цикла while или снаружи?

3. Ну, очевидно, что вы не устанавливаете их в 0 пределах цикла, так что это нужно сделать раньше. И вам нужно miles gallons каждый раз добавлять » и » к их итоговым значениям, так что эта часть должна быть выполнена в цикле.

4. Шельц, какова ценность while (miles != -1) { первого раза, когда он выполняется? int miles; не присваивает ему никакого значения.

Ответ №1:

Хорошо, поэтому я думаю, что вы пытаетесь сказать, поэтому в первую очередь вы должны инициализировать avg = 0; и вместо того, чтобы изменить avg = mpg; каждый раз, когда цикл выполняется, вы должны сделать avg = mpg; так, чтобы это добавит предыдущие значения, чтобы в следующий раз цикл выполняется, взять другую int , чтобы найти общее среднее, инициализируйте от 0 int t_avg = 0; и на следующие вещи, разделив сколько раз она проходит через, вы должны взять переменную и инициализировать ее t = 0; и просто приращение t каждый раз, когда цикл работает, так что вы получите временную петлю идет, и вы просто должны разделить его avg .
И я хотел бы предложить вам использовать do while цикл, а не while так, что было бы гораздо лучше. Надеюсь, это то, что вы искали.

 #include <stdio.h>

int main() {
    int miles;
    int gallons;
    int mpg;
    int avg = 0, t = 0,t_avg = 0;

    do {
        t  ;
        printf("Enter number of miles driven(-1 to quit): ");
        scanf("%d", amp;miles);
        printf("Enter gallons used: ");
        scanf("%d", amp;gallons);
        mpg = miles / gallons;
        avg  = mpg;
        t_avg = avg/t;
        // adding average every time and diving every time the loop runs
        printf("MPG this trip: %dn", mpg);
        printf("Avg MPG(so far): %dn", t_avg);
    }while(miles != -1);
}