Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 05.11.2013
Сообщений: 12
1

Как выйти из цикла? Не получается

13.11.2013, 00:46. Просмотров 581. Ответов 1
Метки нет (Все метки)

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

Пример вывода:

Введите расход бензина (-1, если ввод закончен): 12.8
Введите пройденный путь: 287
Для этой емкости получено миль / галлон 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
26
27
28
29
30
31
32
33
34
35
36
#include <iostream> 
#include <stdlib.h> 
 
using namespace std; 
 
int main(int argc, char *argv[]) 
{ 
setlocale (LC_ALL, ".1251"); 
float Benzin, MnaG, OMnaG; 
int Doroga, SrBenzin, n; 
 
n = 1; 
Benzin = 0; 
Doroga = 0; 
MnaG = 0; 
SrBenzin = 0; 
OMnaG = 0; 
 
while (Benzin != -1) 
{ 
cout << "Введите расход бензина (-1, если ввод закончен): " ; 
cin >> Benzin; 
cout << "Введите пройденный путь: " ; 
cin >> Doroga; 
MnaG = Doroga / Benzin; 
cout << "Для этой емкости получено миль / галлон: " << MnaG << endl; 
OMnaG = OMnaG + MnaG; 
++n; 
} 
 
SrBenzin = OMnaG / n; 
cout << "Средний расход бензина: " << SrBenzin; 
 
system("PAUSE");    
return 0; 
}
Это только начало книги, по которой я собираюсь изучать С++, а у меня уже столько ошибок... Подскажите пожалуйста, что исправить? Спасибо заранее!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2013, 00:46
Ответы с готовыми решениями:

Не получается выйти из цикла
Я ввожу &quot;1 2 3 4 -1 -5 1 -1&quot;. У меня есть 2 (A и B) последовательности &quot;1 2 3 4&quot; и &quot;-5 1&quot;. Если B &lt;...

Как выйти из цикла
Помогите пож дописать макрос! Нужно найти номер позиции первой буквы кириллицы в строке как...

Как выйти из цикла while();
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cctype&gt; #include &lt;string&gt; #include &lt;vector&gt;...

do while - как выйти из цикла?
Подскажите пожалуйста, а то я уже всю голову &quot;сломал&quot;, почему при вводе &quot;А&quot; цикл не прерывается???...

1
0 / 0 / 1
Регистрация: 13.11.2013
Сообщений: 3
13.11.2013, 01:01 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
while(true)//вечный цикл
{
cout << "Введите расход бензина (-1, если ввод закончен): " ;
cin>>Benzin;
if(Benzin==-1)//проверка нужно ли заканчивать цикл
{
break;//выход из цикла
}
else
{
cout << "Введите пройденный путь: " ; 
cin >> Doroga; 
MnaG = Doroga / Benzin; 
cout << "Для этой емкости получено миль / галлон: " << MnaG << endl; 
OMnaG = OMnaG + MnaG; 
++n; 
}
 
}
ошибка из за того, что при проверки в while Benzin равен последнему значению введеному с клавиатуры.
можно еще вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
cout << "Введите расход бензина (-1, если ввод закончен): " ;//первый ввод 
cin >> Benzin; 
while (Benzin != -1) //проверка
{ 
cout << "Введите пройденный путь: " ; 
cin >> Doroga; 
MnaG = Doroga / Benzin; 
cout << "Для этой емкости получено миль / галлон: " << MnaG << endl; 
OMnaG = OMnaG + MnaG; 
++n; 
cout << "Введите расход бензина (-1, если ввод закончен): " ;//ввод для второго раза, после чего while проверит именно это значение 
cin >> Benzin; 
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2013, 01:01

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как выйти из цикла?
Здрасьте!Я новичок, и у меня достаточно глупый вопрос. Как тут реализовать выход из цикла? ...

Не пойму как из цикла выйти
в учебнике такой пример. #include &lt;stdio.h&gt; main() { long nc; nc = 0; while...

Как выйти из замкнутого цикла
Здравствуйте, напоролся на замкнутый цикл, только не понимаю почему он замкнутый. Запускал...

Как выйти из двойного цикла?
for for (действие) (а как отсюда выйти из двух циклов?) (а как отсюда...

Как в jinja2 выйти из цикла?
Здравствуйте. Подскажите как выйти из цикла в jinja2. Описание задачи следующее: Приходит ответ от...

Как выйти из бесконечного цикла?
Есть вот такая специфическая форма записи бесконечного цикла: for /L %%a in (0,0,0) do goto :nxt...


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

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

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