2013-06-28 3 views
-5

Есть ли здесь программисты на языке C, которые могут помочь мне понять это? У меня возникли проблемы с вычислением средних миль на галлон, чтобы работать, и моя голова вращается. Я был бы очень признателен, если кто-нибудь есть решение^_^Рассчитать средние мили за галлон

int x, number_of_tanks = 3; 
double total_num1, total_num2; 
double total_miles_per_gallon; 
float division, avg; 
float num1, num2; 

for (x = 1; x <= 3; x++) 
{ 
    printf("Enter the number of gallons used for tank #%i: ",x); 
    scanf("%f", &num1); 
    fflush(stdin);  /* clear input buffer */ 

    printf("Enter the number of miles driven: "); 
    scanf("%f", &num2); 
    fflush(stdin);  /* clear input buffer */ 

    /*--------------------------------------------------------------*/ 
    /* calculate and output the miles per gallon from user input. */ 
    /* ------------------------------------------------------------ */ 

    division = num2/(float) num1;        
    printf("The miles per gallon for this tank %.1f divided by %.1f is %.1f", \ 
     num2, num1, division); 

    total_num2 = total_num2 + num2; 
    printf("The total of miles is %f\n", total_num2); 

    total_num1 = total_num1 + num1; 
    printf("The total of gallons is %f\n", total_num1); 
} 

avg = (double) total_num2/total_num1; 
printf("Overall average miles per gallon for three tanks: %.1f", avg); 
+0

Пожалуйста, более конкретно - в чем проблема? Кроме того, спасибо за включение кода, но многое из этого не имеет прямого отношения к проблеме ... Я предложаю несколько изменений ... – icedwater

+2

Вы не публикуете домашнее задание и не просите об этом здесь. –

+1

Вы можете начать с предоставления переменным значимых имен. Например. переименуйте 'total_num2' в' total_miles'. И 'division' может быть' mpg_this_tank'. – Bull

ответ

1

Вы не инициализировать свои итоги, так что они не определены. Когда вы начинаете добавлять к ним, вы получаете неопределенные результаты. Держу пари, это то, что вы подразумеваете под этим, не работает.

ли это:

double total_num1 = 0; 
double total_num2 = 0; 
+0

Вы можете быть правы, но @SanoAlexander должен, вероятно, указать, что не работает. – icedwater

+0

моё извинения, если я не объяснил проблему, которую я испытываю. У меня возникают проблемы с вычислением, чтобы найти Средние мили на галлон. пользовательский ввод принимается, но среднее дает правильный ответ. –

+0

Вы имеете в виду * not *, дающий правильный ответ ... – icedwater