Начал изучать Си. Книга «Харви Дейтел. Пол Дейтел. Как программировать на С». Там на 128 странице есть задание. «Разработайте программу на Си для ввода пройденного расстояния в километрах и объема каждой заправки в литрах. Программа должна вычислять и отображать на экране количество пройденных километров на литр для каждой заправки авто. После обработки всей входной информации программа должна вычислить и вывести общее количество пройденных километров на литр по всем заправкам.»
.. Введите расход бензина (-1, если ввод закончен): 12.8
..Введите пройденный путь: 287
Для этой заправки получено километр/литр 22.42
.. Введите расход бензина (-1, если ввод закончен): 10.3
..Введите пройденный путь: 200
Для этой заправки получено километр/литр 22.42
.. Введите расход бензина (-1, если ввод закончен): 5
..Введите пройденный путь: 120
Для этой заправки получено километр/литр 22.42
.. Введите расход бензина (-1, если ввод закончен): -1
Среднее число километров/литр 21.60
Я не прошу что бы за меня решали задачу.
Вот мой код, буду благодарен за дельные советы, прошу конструктивной критики.
#include <stdio.h>
int main()
{
float srednee, rashod, s, kmlitr, summa;
int a;
a = 0;
rashod = 0;
while (rashod != -1)
{
printf("Введите расход бензина (-1 если ввод закончен):");
scanf("%f", &rashod);
printf("Введите пройденный путь:");
scanf("%f", &s);
kmlitr = s / rashod;
printf("kmlitr %.2f\n", kmlitr);
if (rashod > 0)
summa += kmlitr;
if (rashod > 0) a++;
srednee = summa / a;
}
printf("Средний расход бензина %.2f", srednee);
return 0;
}
Может задачу и можно решить по-другому, но я только в начале прочтения книги. Что конкретно у меня не получается:
1. Если ввести -1, то все равно выводится вопрос о пройденном пути, и только потом заканчивает считаться среднее.
2. Знаю что задача не сложна сама по себе, но в книге до этой задачи не давались примеры хоть сколько похожие.
3. Что может посоветуете от себя (книги, сайты, может есть у кого целые задания - желательно с решением - НО заглядывать не буду пока не решу саму задачу). Это здорово помогло бы мне продвинуться.
З.Ы: Учусь программировать в Линуксе (Agiliya 8), я в 10 классе.