Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
IYIurasaki
3 / 3 / 0
Регистрация: 05.11.2013
Сообщений: 12
#1

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

13.11.2013, 00:46. Просмотров 382. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 00:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как выйти из цикла? Не получается (C++):

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

Как выйти из цикла while(); - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cctype&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace std; int main()...

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

Как выйти из цикла клавишей Enter - C++
Доброго времени суток, форумчане! Получил несколько необычное задание: у нас есть рядок с пробелами. Используя только cin вывести в файл...

Выйти из цикла до того, как n равно 0 - C++
Друзья подскажите почему условие цикла игнорируется?Прописал до тех пор пока не равно нулю она всё равно делит на ноль. char y; do ...

Как выйти из цикла с символьными массивами? - C++
Допустим, хочу сделать цикл, в котором бы считывалась символьная строка с клавиатуры и выводилась на экран. Не могу придумать условие...

1
DukeOfCarrots
0 / 0 / 0
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 01:01
Привет! Вот еще темы с ответами:

Как выйти из цикла по нажатию кнопки? - C++
Есть цикл ... while (1) { код } ... как можно организовать выход из этого зацикливания по нажатию какой либо конкретной...

Как выйти из цикла, если break относится к switch? - C++
Как выйти из цикла в конструкции while(условие) { switch(i) case(!условие): break; default break; }

Старый борланд: как выйти из бесконечного цикла по нажатию заданной клавиши? - C++
Короче нужно сделать прогу которая считает сколько отрицательных,положительных,равных 0 ввел пользователь. Реализовал.Пользователь вводит...

Цикл: Выйти в любой момент времени из цикла while нажатием определённой кнопки. Как реализовать? - C++
Необходимо выйти в любой момент времени из цикла while нажатием определённой кнопки. Как реализовать?


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

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

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