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

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

Восстановить пароль Регистрация
 
engine76
2 / 2 / 0
Регистрация: 04.03.2014
Сообщений: 65
08.03.2014, 22:02     Что не так в цикле? #1
Доброго времени суток. Пытаюсь написать программу(решить задачу из книги Дейтелов "Как программировать на С++). Суть программы в следующем: есть 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++ что-то не так
C++ Что-то не так в цикле
C++ Что-то не так?
C++ Что не так?
Что тут исправить в цикле? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
 Аватар для Krasme
1720 / 1602 / 530
Регистрация: 02.02.2014
Сообщений: 4,607
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
 Аватар для Krasme
1720 / 1602 / 530
Регистрация: 02.02.2014
Сообщений: 4,607
08.03.2014, 22:23     Что не так в цикле? #6
если тип int, то и в case надо поправить.
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
08.03.2014, 22:25     Что не так в цикле? #7
зачем вообще использовать case в данном случае? не проще ли через обычные условия? и мозг ломать не придётся
Krasme
 Аватар для Krasme
1720 / 1602 / 530
Регистрация: 02.02.2014
Сообщений: 4,607
08.03.2014, 22:26     Что не так в цикле? #8
в данном случае (перебор вариантов) case удобнее. только автору надо разобраться с типами.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2014, 22:29     Что не так в цикле?
Еще ссылки по теме:

что не так? C++
Не могу разобраться что за \0 в цикле C++
C++ Что обозначает точка с запятой в цикле

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

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

Текущее время: 05:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru