Неверно вычисляется среднее число миль/галон - C (СИ)
Формулировка задачи:
Введите расход бензина (-1, если ввод закончен): 12.8
Введите пройденный путь: 287
Для этой заправки получено миль/галлон 22.421875
Введите расход бензина (-1, если ввод закончен): 10.3
Введите пройденный путь: 200
Для этой заправки получено миль/галлон 19.417475
Введите расход бензина (-1, если ввод закончен): 5
Введите пройденный путь: 120
Для этой заправки получено миль/галлон 24.000000
Введите расход бензина (-1, если ввод закончен): -1
Среднее число миль/галлон: 21.601423
ДОЛЖНО ВЫЙТИ ТАК, НО ВЫХОДИТ ВОТ ТАК :
Как вы поняли, не выводит контрольное значение "-1" и неправильно считает Среднее число миль/галон...
Vvedite rashod galon : 12.50
Vvedite proidenii mili : 199
Dla etoi zapravki polucheno : 15.920000
Vvedite rashod galon : 13.50
Vvedite proidenii mili : 215
Dla etoi zapravki polucheno : 15.925926
Vvedite rashod galon : 13.90
Vvedite proidenii mili : 220
Dla etoi zapravki polucheno : 15.827338
Srednee chislo mil/galon 15.000000
int main(void)
{
float galon, opred, sred;
int mili, ops = 0, nop = 0;
scanf("%f", &galon);
scanf("%d", &mili);
opred = put / galon;
while(galon != -1)
{
printf("Vvedite rashod benzina : %.2f\n", galon);
scanf("%f", &galon);
ops += opred;
nop += 1;
printf("Vvedite proidenii mili : %d\n", mili);
scanf("%d", &put);
printf("Dla etoi zapravki polucheno : %f\n", opred);
opred = mili / galon;
}
if (nop != 0)
{
sred = ops / nop;
printf("Srednee chislo mili/galon %f\n", sred);
}
else
printf("Ne korektno");
return 0;
}
Так что, есть идеи?
Решение задачи: «Неверно вычисляется среднее число миль/галон»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float galon = 0., mili = 0.;
float total_mile = 0., total_galon = 0.;
while(1)
{
printf("Vvedite rashod benzina : ");
scanf("%f", &galon);
if ((int)galon == -1)
break;
printf("Vvedite proidenii mili : ", mili);
scanf("%f", &mili);
printf("Dla etoi zapravki polucheno : %f\n", mili/galon);
total_mile += mili;
total_galon += galon;
}
if ((int)total_galon)
printf("Srednee chislo mili/galon %f\n", total_mile/total_galon);
else
printf("Ne korektno");
system("pause");
return 0;
}