#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);
}