Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/10: Рейтинг темы: голосов - 10, средняя оценка - 5.00
TBIKC
web dev
104 / 90 / 9
Регистрация: 23.09.2010
Сообщений: 737
1

Управляющие структуры [while, if]

10.10.2010, 21:24. Просмотров 1724. Ответов 12
Метки нет (Все метки)

Текст задачи
Из-за высокой цены бензина водители озабочены затратами топлива
своих автомобилей. Один водитель взял в рейс несколько емкостей
бензина, записывая пройденные мили и бензин, использованный из
каждой емкости. Разработайте программу на C++, которая вводила
бы пробег в милях и бензин, использованный из каждой емкости.
Программа должна рассчитывать и выводить на экран число миль
на галлон для каждой емкости. После ввода исходных данных про-
грамма должна рассчитать и напечатать значение среднего числа
миль на галлон, полученное для всех емкостей.

Пример вывода:
Введите расход бензина (-1, если ввод закончен) : 12.8
Введите пройденный путь: 287
Управляющие структуры 165
Для эфой емкости получено миль / галлон 22.421875
Введите расход бензина (-1, если ввод закончен) : 10.3
Введите пройденный путь: 200
Для этой емкости получено миль / галлон 19.417475
Введите расход бензина (-1, если ввод закончен) : 5
Введите пройденный путь: 120
Для этой емкости получено миль / галлон 24.000000
Введите расход бензина (-1, если ввод закончен) : -1
Средний расход бензина 21.601423


Вот мой код который я сделал его надо заключить правильно в цикл и добавить метку,
у самого пока не получаеться, как реализовать? Помогите ответом пожалуйста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <iomanip>
#include <windows.h>
using  namespace std;
 
main ()
{
     setlocale( LC_ALL,"Russian" );
     float result; // Переменная результата
     int benz, way, prom;
     benz = 0;
     way = 0;
     
     cout << "Введите расход бензина: ";
     cin >> benz;
     
     cout << "Введите пройденный путь: ";
     cin >> way;
     
     prom = way / benz;
     cout << "для этой ёмкости получено миль \ галлон: " << prom;
     
     system("PAUSE");
     return EXIT_SUCCESS;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2010, 21:24
Ответы с готовыми решениями:

Управляющие структуры
Помогите отобразить натуральное число, которое вводит пользователь, в виде: 1...

Циклические управляющие структуры
Разработать программу решения двух индивидуальных задач, содержащую 3 вида...

Управляющие последовательности
Доброго времени суток! У меня возник вопрос касательно управляющей...

Управляющие символы \r и \n
Всем привет, помогите разобраться, в чем различие между \r\n и просто \n...

Управляющие символьные последовательности
Я нашел учебник по С++... В нем написано: \a - Звуковой сигнал (звонок) \f -...

12
ForEveR
В астрале
Эксперт С++
7996 / 4755 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
10.10.2010, 21:32 2
Ага?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <iomanip>
//#include <windows.h>
using  namespace std;
 
int main ()
{
     setlocale( LC_ALL,"Russian" );
     float result=0, benz, prom; // Переменная результата
     int way;
     int cnt=0;
     while(1)
     {
     cout << "Введите расход бензина: ";
     cin >> benz;
     if(benz==-1)
         break;
     cout << "Введите пройденный путь: ";
     cin >> way;
     
     prom = way / benz;
     cout << "для этой ёмкости получено миль \ галлон: " << prom;
     cnt++;
     result+=prom;
     }
     cout<<"Среднее: "<< result/cnt <<'\n';
     system("PAUSE");
     return EXIT_SUCCESS;
}
0
TBIKC
web dev
104 / 90 / 9
Регистрация: 23.09.2010
Сообщений: 737
11.10.2010, 12:37  [ТС] 3
хм почему если переменная benz обьявлена как float, при вводе например 1.4 происходит не весть значет что с программой - тупо закрывать надо?
Обьясните ньюансы пожалуйста

Добавлено через 1 час 27 минут
Хм что то не так)
http://codepad.org/HWPslrOI
0
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
11.10.2010, 12:43 4
C++
1
cout << "для этой ёмкости получено миль '\' галлон: " << prom;
1
TBIKC
web dev
104 / 90 / 9
Регистрация: 23.09.2010
Сообщений: 737
11.10.2010, 12:46  [ТС] 5
А как сделать чтобы можно было вводить не целые данные бензина -1.3 и т.д.
Ведь в книге показано не только целые цисла, подскажите ибо код Lavroff не совсем корректен
0
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
11.10.2010, 12:52 6
А в чем собственно проблема? Код, который выложыл Lavroff у меня нормально работает с не целыми числами.

Добавлено через 3 минуты
http://codepad.org/3VInx2i3
0
TBIKC
web dev
104 / 90 / 9
Регистрация: 23.09.2010
Сообщений: 737
11.10.2010, 12:56  [ТС] 7
Ааа всё понял) вся проблема была в том что я вводил числа подобные: 1,4 12,2 6,7 а надо 1.4 12.2 6.7
Понял из вашего кода...

А собственно говоря к слову почему нельзя водить чилса с запятой?
0
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
11.10.2010, 13:25 8
Видимо потому, что запятая это отдельный оператор. "Бинарный оператор, результат работы которого - второй операнд". Например, попробуйте такой код:
C++
1
2
3
int x;
x = (7,2);
cout<<x;
1
TBIKC
web dev
104 / 90 / 9
Регистрация: 23.09.2010
Сообщений: 737
11.10.2010, 13:29  [ТС] 9
Цитата Сообщение от dihlofos Посмотреть сообщение
Видимо потому, что запятая это отдельный оператор. "Бинарный оператор, результат работы которого - второй операнд". Например, попробуйте такой код:
C++
1
2
3
int x;
x = (7,2);
cout<<x;
Да ты прав ... спасибо
0
illuminati
20 / 20 / 5
Регистрация: 14.06.2010
Сообщений: 108
11.10.2010, 13:59 10
TBIKC, америкосы пишут через точку, да и англичане тоже... вот и нас заставляют
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
11.10.2010, 19:48 11
dihlofos,
Ну а к консоли-то это какое отношение имеет? Там запятая, такой же символ, как и все остальные. А всё дело в локали, в американской разделителем целой и дробной части служит точка, в русской - запятая. Но работает консоль по умолчанию в американской локали, потому надо для разделения вводить точку.
1
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
12.10.2010, 06:21 12
Цитата Сообщение от silent_1991 Посмотреть сообщение
Ну а к консоли-то это какое отношение имеет?
Упс, извиняюсь, не обратил внимание, что это с консоли вводилось. Надо будет темы полностью читать)
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
12.10.2010, 08:25 13
dihlofos,
Угу, иногда полезно
0
12.10.2010, 08:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2010, 08:25

Помещение структуры в вектор, удаление структуры, изменение элементов структуры
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в...

Управляющие символы. Переход на строку вверх
Есть переход на строку вниз \n, а как перейти на строку вверх? Заранее...

Манипуляторы и управляющие последовательности это одно и то же?
Здравствуйте! Возник чисто теоретический вопрос новичка. Манипуляторы и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru