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

Цикл. Продажа билетов - C++

Восстановить пароль Регистрация
 
John_Pa9JIbHuK
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1098 / 614 / 33
Регистрация: 31.03.2009
Сообщений: 2,568
21.04.2010, 18:59     Цикл. Продажа билетов #1
Всем привет
Короче вот что необходимо. 10 человек хотят купить билеты. За один раз они могут купить только 2 билета, т.е. если он хочет купить 5 билетов ему надо купить 2 потом 2 потом 1
Вот собственно код никак неразберусь что не так. Жду ваши советы.
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
37
38
39
40
41
42
43
44
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main()
{
int Och[19][0];
int m,i,l;
cout<<"BBeDuTe Kol. 6uletov";
cin >>m;//тут собственно сколько ваще имеется билетов в кассе
for (i=0;i<10;i++)
{
    cout<<"Ckolko 6ileToB xo4eT KynuTb "<<i+1<<" 4eloBek";
    cin>>Och[i][0];//считываем сколько билетов хочет купить i-ый человекr
 
}
l=10; //ну и пошли поехали l-это сколько человек еще не купили все билеты
while (l>0){
for (i=0;i<10;i++)
{
if (Och[i][0]>1) {
                 m=m-2;
Och[i][0]=Och[i][0]-2;}
 
if (Och[i][0]==1){
                  m=m-1;
Och[i][0]=Och[i][0]-1;
                 }
if (Och[i][0]==0){
                 l=l-1;
                 }
                 }
                 }
 
                 
 
                   
    
cout<<l<<"|";
cout<<m;
cin.get();
cin.get();
}
не пойму что нетак если скажем все хотят купить по 3 билетика а их всего 30 то количество людей которые купили необходимые им билеты =0 а осталось билетов почему то 27
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
exclaim1
 Аватар для exclaim1
1 / 1 / 0
Регистрация: 10.02.2010
Сообщений: 32
21.04.2010, 19:10     Цикл. Продажа билетов #2
А почему не написать нормальными русскими буквами?
C++
1
cout<<"ВВедите количество билетов";
по моему для этого достаточно в начале кода написать:
C++
1
2
3
4
5
6
7
8
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main()
{
setlocale( LC_ALL,"Russian" );
это все чем я могу помоч
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 19:15     Цикл. Продажа билетов #3
а что за вопрос-то? за сколько подходов они купят все необходимое???
John_Pa9JIbHuK
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1098 / 614 / 33
Регистрация: 31.03.2009
Сообщений: 2,568
21.04.2010, 19:19  [ТС]     Цикл. Продажа билетов #4
никакой основной задачи пока нет я просто не пойму почему 10 человек купив по 3 билета из 30 остается все равно 27 билетов я что то там с условием не то делаю но что пока не могу понять Объясните плиз
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 19:56     Цикл. Продажа билетов #5
а ты в чем писал?

Добавлено через 2 минуты
короче, внутри цикла for надо еще один. я бы советовал while - для проверки того, что i-й купил все необходимые билеты. а то для i-го у тебя всего одно условие проверяется и все

Добавлено через 46 секунд
и не забудь else прописать для if, иначе при обработке за один цикл может под два условия попасть
John_Pa9JIbHuK
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1098 / 614 / 33
Регистрация: 31.03.2009
Сообщений: 2,568
21.04.2010, 19:57  [ТС]     Цикл. Продажа билетов #6
delfamur, можешь написать?
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 19:58     Цикл. Продажа билетов #7
я не пойму, в чем ты писал...у меня и библиотек таких нет. напишу прям здесь, ошибки же тупые ты исправишь
John_Pa9JIbHuK
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1098 / 614 / 33
Регистрация: 31.03.2009
Сообщений: 2,568
21.04.2010, 20:00  [ТС]     Цикл. Продажа билетов #8
delfamur,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
while (l>0){
for (i=0;i<10;i++)
{
if (Och[i][0]>1) {
                 m=m-2;
Och[i][0]=Och[i][0]-2;}
 
if (Och[i][0]==1){
                  m=m-1;
Och[i][0]=Och[i][0]-1;
                 }
if (Och[i][0]==0){
                 l=l-1;
                 }
                 }
                 }
я предполагал что здесь все эти 3 условия буду проверяться по цепочке тоесть в начале если больше 1 то отнимаем 2 и в том же проходе цикла проверяем равно ли оно 1 -му потом в том же проходе проверяем равно ли оно 1 му
Я не правильно понял да?
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 20:05     Цикл. Продажа билетов #9
Цитата Сообщение от John_Pa9JIbHuK Посмотреть сообщение
while (l>0){
for (i=0;i<10;i++)
{
if (Och[i][0]>1) {
m=m-2;
Och[i][0]=Och[i][0]-2;}
if (Och[i][0]==1){
m=m-1;
Och[i][0]=Och[i][0]-1;
}
if (Och[i][0]==0){
l=l-1;
}
}
}
для этого:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
while (l>0){
for (i=0;i<10;i++)
{
while (Och[i][0]!=0)
{
if (Och[i][0]>1) {
                 m=m-2;
Och[i][0]=Och[i][0]-2;}
else { 
if (Och[i][0]==1){
                  m=m-1;
Och[i][0]=Och[i][0]-1;
                 }
else {
if (Och[i][0]==0){
                 l=l-1;
}
}
}  
                 }
                 }
                 }
вроде так

Добавлено через 1 минуту
а если оно допустим 7? получается попадет под условие первое, отнимется 2 и все
John_Pa9JIbHuK
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1098 / 614 / 33
Регистрация: 31.03.2009
Сообщений: 2,568
21.04.2010, 20:27  [ТС]     Цикл. Продажа билетов #10
ну смотри получается так если 7
пока Och[i][0] неравен нулю
отнимаем 2
потом снова 2
потом снова 2
потом 1 и получается равным 0 и выходим из условия
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 20:29     Цикл. Продажа билетов #11
нужно. l у тебя за людей отвечает, а och[i][0] - за билеты у итого чела

Добавлено через 37 секунд
иначе он только 10 чела до 0 приведет
John_Pa9JIbHuK
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1098 / 614 / 33
Регистрация: 31.03.2009
Сообщений: 2,568
21.04.2010, 20:31  [ТС]     Цикл. Продажа билетов #12
Чтото не выходит Оо

Добавлено через 22 секунды
зацикливается
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 20:35     Цикл. Продажа билетов #13
условие для второго while измени

Добавлено через 1 минуту
надо просто больше
John_Pa9JIbHuK
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1098 / 614 / 33
Регистрация: 31.03.2009
Сообщений: 2,568
21.04.2010, 20:36  [ТС]     Цикл. Продажа билетов #14
тут дело помоему не во втором а на какое поменять?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2010, 20:42     Цикл. Продажа билетов
Еще ссылки по теме:

Программа на тему: "Продажа билетов на поезд" C++
C++ Разработка системы резервирования и продажи билетов

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

Или воспользуйтесь поиском по форуму:
delfamur
 Аватар для delfamur
42 / 42 / 0
Регистрация: 16.03.2010
Сообщений: 199
21.04.2010, 20:42     Цикл. Продажа билетов #15
так же как и в первом while - ">". иначе я задаю делать пока не равно нулю. хотя тоже верно... попробуй на больше изменить
Yandex
Объявления
21.04.2010, 20:42     Цикл. Продажа билетов
Ответ Создать тему
Опции темы

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