Разработайте программу на С, которая вводила бы пробег в милях и бензин, использованный из каждой емкости - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! прошу строго не судить, помогите найти ошибку. Задача: Из-за высокой цены бензина водители озабочены затратами топлива своих автомобилей. Один водитель взял в рейс несколько емкостей бензина, записывая пройденные мили и бензин, использованный из каждой емкости. Разработайте программу на С, которая вводила бы пробег в милях и бензин, использованный из каждой емкости. Программа должна рассчитывать и выводить на экран число миль на галлон для каждой емкости. После ввода исходных данных программа должна рассчитать и напечатать значение среднего числа миль на галлон, полученное для всех емкостей. Пример вывода: Введите расход бензина (-1, если ввод закончен): 12.8 Введите пройденный путь: 287 Для этой емкости получено миль / галлон 22.421875 Введите расход бензина (-1, если ввод закончен): 10.3 Введите пройденный путь: 200 Для этой емкости получено миль / галлон 19.417475 Введите расход бензина (-1, если ввод закончен): 5 Введите пройденный путь: 120 Для этой емкости получено миль / галлон 24.000000 Введите расход бензина (-1, если ввод закончен): -1 Средний расход бензина 21.601423 Я пишу так:
#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;
}
Вывод у меня такой: Введите расход бензина (-1, если ввод закончен): 12 Введите пройденный путь: 258 При этой заправке км/литр 21.50 Введите расход бензина (-1, если ввод закончен): 12.8 Введите пройденный путь: 259 При этой заправке км/литр 20.23 Введите расход бензина (-1, если ввод закончен): 11.4 Введите пройденный путь: 256 При этой заправке км/литр 22.46 Введите расход бензина (-1, если ввод закончен): -1 Введите пройденный путь: Почему когда ввожу -1 опять запрашивает пройденный путь? Как уйти от этого?

Решение задачи: «Разработайте программу на С, которая вводила бы пробег в милях и бензин, использованный из каждой емкости»

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. Ввод данных о расходе топлива и пройденном пути для каждой заправки
  2. Вычисление среднего расхода топлива для каждой заправки
  3. Вывод среднего расхода топлива на экран
  4. Если количество заправок больше 1, то вычисление общего пробега и расхода топлива
  5. Вывод общего пробега и расхода топлива на экран

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы