Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
engine76
2 / 2 / 0
Регистрация: 04.03.2014
Сообщений: 65
#1

Что не так в цикле? - C++

08.03.2014, 22:02. Просмотров 219. Ответов 8
Метки нет (Все метки)

Доброго времени суток. Пытаюсь написать программу(решить задачу из книги Дейтелов "Как программировать на С++). Суть программы в следующем: есть 5 товаров, у каждого из них своя стоимость. Нужно ввести количество проданных товаров каждого вида и вывести стоимость в сумме каждого товара. Написать то написал, но работает не так как надо) При вводе контр значения(-1) цикл повторяется, а должен быть выход из него. Подскажите что не правильно в цикле.

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
int colvo;
char number;
double sum1;
double sum2;
double sum3;
double sum4;
double sum5;
cout << "Enter cod or -1 to exit: ";
cin >> number;
while(number != -1) {
switch(number) {
case '1':
cout << "Enter col-vo: ";
cin >> colvo;
sum1 = colvo * 2.98;
break;

case '2':
cout << "Enter col-vo: ";
cin >> colvo;
sum2 = colvo * 4.50;
break;

case '3':
cout << "Enter col-vo: ";
cin >> colvo;
sum3 = colvo * 9.98;
break;

case '4':
cout << "Enter col-vo: ";
cin >> colvo;
sum4 = colvo * 4.49;
break;

case '5':
cout << "Enter col-vo: ";
cin >> colvo;
sum5 = colvo * 6.87;
break;

case '\n':
case '\t':
case ' ':

default:
cout << "Error, incorrected cod!" << endl;
break;
}
cout << "Enter cod or -1 to exit: " << endl;
cin >> number;
}
cout << "Tovar 1: " << setw(15) << sum1 << endl;
cout << "Tovar 2: " << setw(15) << sum2 << endl;
cout << "Tovar 3: " << setw(15) << sum3 << endl;
cout << "Tovar 4: " << setw(15) << sum4 << endl;
cout << "Tovar 5: " << setw(15) << sum5 << endl;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2014, 22:02     Что не так в цикле?
Посмотрите здесь:

Что не так в цикле? - C++
for(k=0, i=0; k&lt;4*N; k++, i++) { if(alfaint!=alfa) { while(alfaint!=alfa) { ...

Что-то не так в цикле - C++
Цикл пробегает одну строку и после этого программа виснет. for (i = 0; i &lt; img_x - 1; i++) { for(j = 0; j &lt; img_y - 1; j++) { ...

Условие в цикле do while работает не так, как ожидается - C++
Проблема в условие цикла. Вот Код.// ConsoleApplication4.cpp: определяет точку входа для консольного приложения. // #include...

Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее? - C++
Вот код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(){ float a,c; char b; skip: ...

Что в коде ни так? while не работает так, как ожидаю - C++
Написанный код, как я думаю, должен выдавать цифры от 0 до 1000, столбиком. Но выдает начиная от 702 до 1000. Что ни так понимаю, где...

Что-то не то с Майкрсофт визуал студио 2010 или я что-то не так делаю - C++
Дело в том что при запуске вот этой программы: #include &lt;iostream&gt; using namespace std; int main () { for (int i=100; i&lt;=999;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
08.03.2014, 22:10     Что не так в цикле? #2
Цитата Сообщение от engine76 Посмотреть сообщение
while(number != -1) {
Попробуйте использовать цикл FOR с доп условием
C++
1
2
if(number == -1) 
break;
Krasme
2027 / 1855 / 629
Регистрация: 02.02.2014
Сообщений: 5,249
08.03.2014, 22:10     Что не так в цикле? #3
C
1
char number;
и при этом
C
1
while(number != -1)
?
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
08.03.2014, 22:12     Что не так в цикле? #4
А, да, не заметил. Тогда или вместо типа char используй тип int или проверяй while(number!="-1")
engine76
2 / 2 / 0
Регистрация: 04.03.2014
Сообщений: 65
08.03.2014, 22:22  [ТС]     Что не так в цикле? #5
Изменил тип на int, теперь при вводе любого значения пишет:

E:\Programms\VS2010\VC>dt514
Enter cod or -1 to exit: 2
Error, incorrected cod!
Enter cod or -1 to exit:
1
Error, incorrected cod!
Enter cod or -1 to exit:
-1
Tovar 1: 4.3266e-311
Tovar 2: 4.3266e-311
Tovar 3: 4.3266e-311
Tovar 4: 0
Tovar 5: 0
Krasme
2027 / 1855 / 629
Регистрация: 02.02.2014
Сообщений: 5,249
08.03.2014, 22:23     Что не так в цикле? #6
если тип int, то и в case надо поправить.
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
08.03.2014, 22:25     Что не так в цикле? #7
зачем вообще использовать case в данном случае? не проще ли через обычные условия? и мозг ломать не придётся
Krasme
2027 / 1855 / 629
Регистрация: 02.02.2014
Сообщений: 5,249
08.03.2014, 22:26     Что не так в цикле? #8
в данном случае (перебор вариантов) case удобнее. только автору надо разобраться с типами.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2014, 22:29     Что не так в цикле?
Еще ссылки по теме:

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

Что тут исправить в цикле? - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;cmath&gt; #include &lt;iostream&gt; using namespace std; int _tmain(int argc, _TCHAR*...

Не могу разобраться что за \0 в цикле - C++
for (i=0;X!='\0';i++); Цикл: i приравнивается к нулю и пока i-й элемент матрицы X не равен '\0' (чему-то) к i прибавляю один. Вопрос:...

Как сделать так,что бы при введение,например 0;0 выдавалось сообщение,что точка находится на границе? - C++
#include &lt;iostream&gt; using namespace std; int main(){ double x, y; int R=10 cout &lt;&lt; &quot;Введите x: &quot; &lt;&lt;...


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

Или воспользуйтесь поиском по форуму:
engine76
2 / 2 / 0
Регистрация: 04.03.2014
Сообщений: 65
08.03.2014, 22:29  [ТС]     Что не так в цикле? #9
По книге учусь, написано через switch сделать) Исправил в case, все заработало) Всем спасибо за помощь.
Yandex
Объявления
08.03.2014, 22:29     Что не так в цикле?
Ответ Создать тему
Опции темы

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