Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2014, 21:04   #1
nicolas 123
 
Регистрация: 17.06.2014
Сообщений: 8
По умолчанию

Здравствуйте ! Я попробовал написать программу на тему расчёта количества затраченного бензина на расстояние.

Вот текст задачи : Из-за высокой цены на бензин водители интересуются пробегом своих автомобилей. Некий водитель отследил несколько заправок своего автомобиля, записывая пройденное расстояние в милях и объём каждой заправки в галлонах. Разработайте программу на С для ввода пройденного расстояния в милях и объёма каждой заправки в галлонах. Программа должна вычислять и отображать на экране количество пройденных миль на галлон для каждой заправки автомобиля. После обработки всей входной информации программа должна вычислить и вывести общее количество пройденных миль на галлон по всем заправкам.

Я написал программу, но она не работает!!!
Код:
#include <stdio.h>
main ()
{
    int a;
    float srednee,b,benz,benzs,mili,milis,c = 1;
    printf("vvedite kolichestvo zapravok: \n");
    scanf("%d", &a);
    while (c<=a)
    {
        printf("vvedite kolichestvo benzina \n");
        scanf("%d", &benz);
        printf("vvedite kolichestvo proidennix milei \n");
        scanf("%d", &mili);
        b = mili / benz;
        printf("dlia etoi zapravki polucheno milei na gallon: %.f\n", b);
        c++;
        benzs += benz;
        milis += mili;
    }
    srednee = milis / benzs;
    printf("srednee na vseim puti ravno %.f\n", srednee);
    return 0;
}
Дело в том, что программа должна работать и с дробными коэффициентами. Например при вводе дробного ответа на количество бензина программа работает неправильно. С целыми коэффициентами работает ,вроде, хорошо. Помогите пожалуйста понять в чём моя ошибка!!!

это фотографии работы программы:
Изображения
Тип файла: jpg смета 1.jpg (74.4 Кб, 136 просмотров)
Тип файла: jpg Смета 2.jpg (35.9 Кб, 129 просмотров)

Последний раз редактировалось Stilet; 05.07.2014 в 08:53.
nicolas 123 вне форума Ответить с цитированием
Старый 04.07.2014, 22:43   #2
Zenon
Пользователь
 
Регистрация: 03.07.2014
Сообщений: 32
По умолчанию

у вас переменная float, а в scanf формат для целой (%d)
Zenon вне форума Ответить с цитированием
Старый 05.07.2014, 08:33   #3
nicolas 123
 
Регистрация: 17.06.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Zenon Посмотреть сообщение
у вас переменная float, а в scanf формат для целой (%d)
А что там должно быть вместо "%d" ?
"%.f" используется в printf для вывода чисел с плавающей точкой
"%.f" - 6 знаков после запятой, "%.3f" - 3 знака после запятой
Не так ли ???
nicolas 123 вне форума Ответить с цитированием
Старый 05.07.2014, 08:59   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не так ли ???
А почитать методичку?
http://www.cplusplus.com/reference/cstdio/scanf/
Цитата:
f, e, g Floating point number A series of decimal digits, optionally containing a decimal point, optionally preceeded by a sign (+ or -) and optionally followed by the e or E character and a decimal integer (or some of the other sequences supported by strtod).
Implementations complying with C99 also support hexadecimal floating-point format when preceded by 0x or 0X.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.07.2014, 09:55   #5
nicolas 123
 
Регистрация: 17.06.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А почитать методичку?
http://www.cplusplus.com/reference/cstdio/scanf/
я, к сожалению, не понял. Но в книжке по С написано, что "%.f" используется в printf для вывода чисел типа float.
А для чего другие спецификаторы используются ??? Например, a, A, e, E, F?

Последний раз редактировалось nicolas 123; 05.07.2014 в 09:57.
nicolas 123 вне форума Ответить с цитированием
Старый 05.07.2014, 10:24   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
А для чего другие спецификаторы используются ??? Например, a, A, e, E, F?
Откройте предложенную ссылку наконец-то и увидите таблицу.
p51x вне форума Ответить с цитированием
Старый 05.07.2014, 10:33   #7
nicolas 123
 
Регистрация: 17.06.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Откройте предложенную ссылку наконец-то и увидите таблицу.
Цитата:
Сообщение от nicolas 123 Посмотреть сообщение
я, к сожалению, не понял.
Я, к сожалению, не понял что написано на той странице.
nicolas 123 вне форума Ответить с цитированием
Старый 05.07.2014, 10:41   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от nicolas 123 Посмотреть сообщение
в книжке по С написано, что "%.f" используется в printf для вывода чисел типа float.
А в книжке по С про функцию scanf ничего не написано?
printf и scnaf - это две большие разницы.
waleri вне форума Ответить с цитированием
Старый 05.07.2014, 10:53   #9
nicolas 123
 
Регистрация: 17.06.2014
Сообщений: 8
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
А в книжке по С про функцию scanf ничего не написано?
printf и scnaf - это две большие разницы.
scanf используется для ввода, а printf для вывода.Это две совершенно разные функции. Спецификатор "%.f" используется только в функции printf.
nicolas 123 вне форума Ответить с цитированием
Старый 05.07.2014, 11:28   #10
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Интересная мысль и что у Вас получилось, программа заработала?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код ctpz PHP 11 20.09.2012 14:03
Не работает код GS3 PHP 0 05.07.2012 15:57
Не работает код hello19 Общие вопросы C/C++ 11 08.08.2011 16:08
Не работает код. Messer Общие вопросы Delphi 0 15.05.2010 21:11