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

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

Войти
Регистрация
Восстановить пароль
 
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
#1

не работает пишет repeat again из втрого свич почему?? - C++

29.04.2011, 19:50. Просмотров 430. Ответов 6
Метки нет (Все метки)

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
#include <iostream.h>
 
///////////////////////////////////////////////////////////
enum etype {laborer, secretary, manager, accountant, executive, researcher};
///////////////////////////////////////////////////////////
 
///////////////////////////////////////////////////////////
int main()
    {
    char a;
    char b;
    cout<<"Enter the first letter:\
    laborer, secretary, manager, accountant, executive, researcher"<<endl;
    cin>>a;
    cout<<"Full name: ";
    switch(a)
    {
        case 'l': b=laborer; break;
        case 's': b=secretary; break;
        case 'm': b=manager; break;
        case 'a': b=accountant; break;
        case 'e': b=executive; break;
        case 'r': b=researcher; break;
    }
        
    switch(b)
    {
        case '0': cout<<"laborer"<<endl; break;
        case '1': cout<<"secretary"<<endl; break;
        case '2': cout<<"manager"<<endl; break;
        case '3': cout<<"accountant"<<endl; break;
        case '4': cout<<"executive"<<endl; break;
        case '5': cout<<"researcher"<<endl; break;
        default: cout<<"repeat again"<<endl;
    }
    return 0;
    }
не работает пишет repeat again из втрого свич почему?? . ведь b передается значение например laborer это 0 то должно вывести case '0': cout<<"laborer"<<endl; break;

Добавлено через 31 минуту
ну так кто нибудь знает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2011, 19:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос не работает пишет repeat again из втрого свич почему?? (C++):

Почему не работает? Пишет неизвестный идентификатор lowercase - Turbo Pascal
var u: string; ws: array of string; w: string; len: integer; i, j, q: integer; begin ...

Не работает триггер и пишет что произошел конфликт, почему? - SQL Server
Create trigger trigger3 On dbo.tovar After update As Begin Set nocount on; If (select Kod_skla from inserted) &lt;&gt; (select...

Почему не работает прога?)Пишет файл не обнаружен,название правильное точно - Turbo Pascal
Скопировать в другой файл все строки, содержащие заданный символ. program copy; var q,new:text; s:string; i:integer; x:char; ...

Почему не работает программа? Пишет: "Индекс находился вне границ массива" - PascalABC.NET
{Дана последовательность натуральных чисел Aj j=1...n (n&lt;=10000). Удалить из последовательности числа, начинающиеся цифрой 2, а среди...

Почему пишет при передачи информации через сокеты пишет "индекс находится вне границ массива" - C#
Во время выполнения кода сервера, при получении данных они оказываются пустыми. Кто сможет объяснить эту непонятную для меня магию. Вот код...

Не работает таймер в Свич - ActionScript
Привет. Написал Switch на кнопки, первые два Case работают нормально, а вот пробел (32) не работает. Трейс выскакивает. В общем дело в...

6
prazuber
110 / 110 / 3
Регистрация: 29.04.2010
Сообщений: 240
29.04.2011, 19:54 #2
После первого свича надо влепить строчку
C++
1
b += 48;
0
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
29.04.2011, 19:55  [ТС] #3
Почему?
0
prazuber
110 / 110 / 3
Регистрация: 29.04.2010
Сообщений: 240
29.04.2011, 19:58 #4
Потому что константы в enum'е это числа а не символы. Соотв. после первого свича, b будет представлять символ, кодируемый числами от 0 до 5 (ASCII). Символ '0' кодируется числом 48, '1' - 49 и т.д. Поэтому и нужна эта строчка.
1
magirus
29.04.2011, 20:56
  #5
 Комментарий модератора 
.Malek., я Вас еще не предупреждал, так вот - впредь, называйте темы информативными названиями.
0
Kastaneda
Jesus loves me
Эксперт С++
4756 / 2960 / 243
Регистрация: 12.12.2009
Сообщений: 7,516
Записей в блоге: 2
Завершенные тесты: 1
29.04.2011, 21:02 #6
Проще сделать так:
C++
1
2
3
4
5
6
7
8
9
10
switch(b)
        {
                case 0: cout<<"laborer"<<endl; break;
                case 1: cout<<"secretary"<<endl; break;
                case 2: cout<<"manager"<<endl; break;
                case 3: cout<<"accountant"<<endl; break;
                case 4: cout<<"executive"<<endl; break;
                case 5: cout<<"researcher"<<endl; break;
                default: cout<<"repeat again"<<endl;
        }
0
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
30.04.2011, 07:42  [ТС] #7
Добавлено через 10 часов 16 минут
Как реализовать чтобы выводило должность а то выводит -14.

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
#include <iostream.h>
enum Etype {laborer=0, secretary=1, manager, accountant, executive, researcher};
///////////////////////////////////////////////////////////
struct date
    {
    int month;
    int day;
    int year;
    };
 
struct employee
    {
    int number;
    float money;
    Etype position;
    date data;
    };
///////////////////////////////////////////////////////////
 
///////////////////////////////////////////////////////////
int main()
    {
    char i;
    employee N1, N2, N3;
    cout<<"Enter first layber (Number, money,position\
    (laborer(0), secretary(1), manager(2),accountant(3), executive(4), researcher(5)),\
    and date(month/day/year): "<<endl;
    cin>>N1.number>>N1.money>>N1.position>>N1.data.month>>i>>N1.data.day>>i>>N1.data.year;
 cout<<"Enter second layber (Number, money,position\
    (laborer(0), secretary(1), manager(2),accountant(3), executive(4), researcher(5)),\
    and date(month/day/year): "<<endl;
    cin>>N2.number>>N2.money>>N2.position>>N2.data.month>>i>>N2.data.day>>i>>N2.data.year;
     cout<<"Enter third layber (Number, money,position\
    (laborer(0), secretary(1), manager(2),accountant(3), executive(4), researcher(5)),\
    and date(month/day/year): "<<endl;
    cin>>N3.number>>N3.money>>N3.position>>N3.data.month>>i>>N3.data.day>>i>>N3.data.year;
    cout<<"Number: "<<N1.number<<" Money: "<<N1.money<<" Position: "<<N1.position<<" Date: "<<N1.data.month<<'/'<<N1.data.day<<'/'<<N1.data.year<<endl;
    cout<<"*****************************************************************"<<endl;
    cout<<"Number: "<<N2.number<<" Money: "<<N2.money<<" Position: "<<N1.position<<" Date: "<<N2.data.month<<'/'<<N2.data.day<<'/'<<N2.data.year<<endl;
    cout<<"*****************************************************************"<<endl;
    cout<<"Number: "<<N3.number<<" Money: "<<N3.money<<" Position: "<<N1.position<<" Date: "<<N3.data.month<<'/'<<N3.data.day<<'/'<<N3.data.year<<endl;
    return 0;
    }
0
30.04.2011, 07:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2011, 07:42
Привет! Вот еще темы с ответами:

обжимка витой пары свич + свич - Сети
привет ребята . Помогите мне разобратся в сложившейся ситуации . Напомните мне пржалуйста как обжимать витурую пару я этим давно не...

не работает сеть модем-свич-компы - Сетевое оборудование
здравствуйте! возможно спрошу что-то очень простое, но сам не дойду как решить дано: АДСЛ модем D-Link DSL-2650U. Модем в режиме...

Почему не пишет в textarea? - HTML, CSS
Нельзя ввести в textarea ничего, с чем это связано? &lt;html&gt; &lt;head&gt; &lt;textarea class=&quot;inner&quot; rows=&quot;8&quot; cols=&quot;57&quot;&gt;&lt;/textarea&gt; &lt;style&gt;...

Почему не пишет файл? - C++
int main (int Count , char **Parametrs) { std::ofstream s; s.open(&quot;C:\Projects\test\s.log&quot;); s&lt;&lt;&quot;tfds&quot;; ...


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

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

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