Разработайте программу на С, которая вводила бы пробег в милях и бензин, использованный из каждой емкости - C (СИ)
Формулировка задачи:
Всем привет! прошу строго не судить, помогите найти ошибку.
Задача:
Из-за высокой цены бензина водители озабочены затратами топлива своих автомобилей. Один водитель взял в рейс несколько емкостей бензина, записывая пройденные мили и бензин, использованный из каждой емкости. Разработайте программу на С, которая вводила бы пробег в милях и бензин, использованный из каждой емкости. Программа должна рассчитывать и выводить на экран число миль на галлон для каждой емкости. После ввода исходных данных программа должна рассчитать и напечатать значение среднего числа миль на галлон, полученное для всех емкостей.
Пример вывода:
Введите расход бензина (-1, если ввод закончен): 12.8
Введите пройденный путь: 287
Для этой емкости получено миль / галлон 22.421875
Введите расход бензина (-1, если ввод закончен): 10.3
Введите пройденный путь: 200
Для этой емкости получено миль / галлон 19.417475
Введите расход бензина (-1, если ввод закончен): 5
Введите пройденный путь: 120
Для этой емкости получено миль / галлон 24.000000
Введите расход бензина (-1, если ввод закончен): -1
Средний расход бензина 21.601423
Я пишу так:
Вывод у меня такой:
Введите расход бензина (-1, если ввод закончен): 12
Введите пройденный путь: 258
При этой заправке км/литр 21.50
Введите расход бензина (-1, если ввод закончен): 12.8
Введите пройденный путь: 259
При этой заправке км/литр 20.23
Введите расход бензина (-1, если ввод закончен): 11.4
Введите пройденный путь: 256
При этой заправке км/литр 22.46
Введите расход бензина (-1, если ввод закончен): -1
Введите пройденный путь:
Почему когда ввожу -1 опять запрашивает пройденный путь? Как уйти от этого?
#include <stdio.h> int main () { float fuel, average, resultat; int total, km, counter; /*Иницилизация*/ fuel = 0; km = 0; resultat = 0; counter = 0; total = 0; /*Обработка*/ while (fuel != -1){ total = total + fuel; counter = counter + 1; printf("Введите расход бензина (-1, если ввод закончен): "); scanf("%f", &fuel); printf("Введите пройденный путь: "); scanf("%d", &km); average = km / fuel; printf("При этой заправке км/литр %.2f\n", average); } /*Завершение*/ if (counter != 0) resultat = (float) total / counter; printf("Средний пробег км/литр %.2f", resultat); return 0; }
Решение задачи: «Разработайте программу на С, которая вводила бы пробег в милях и бензин, использованный из каждой емкости»
textual
Листинг программы
#include <stdio.h> int main () { float fuel, average, resultat; int total, km, counter; /*Иницилизация*/ fuel = 0; km = 0; resultat = 0; counter = 0; total = 0; /*Обработка*/ while (fuel != -1){ total = total + fuel; counter = counter + 1; printf("Введите расход бензина (-1, если ввод закончен): "); scanf("%f", &fuel); if(fuel!=-1)//Не красиво, но поможет { printf("Введите пройденный путь: "); scanf("%d", &km); average = km / fuel; printf("При этой заправке км/литр %.2f\n", average); } } /*Завершение*/ if (counter != 0) resultat = (float) total / counter; printf("Средний пробег км/литр %.2f", resultat); return 0; }
Объяснение кода листинга программы
- Ввод данных о расходе топлива и пройденном пути для каждой заправки
- Вычисление среднего расхода топлива для каждой заправки
- Вывод среднего расхода топлива на экран
- Если количество заправок больше 1, то вычисление общего пробега и расхода топлива
- Вывод общего пробега и расхода топлива на экран
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д