Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
28 / 5 / 9
Регистрация: 06.03.2015
Сообщений: 105
1

Перезапустить программу при неверном выборе в swich

18.05.2015, 16:33. Показов 2108. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
подскажите как сделать при операторе switch вызов сase дальше...а не заново запускать программу.
Вот моя программа:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <stdlib.h>   
#include <conio.h>
#include <iostream.h>
 
main()
{
srand(time(NULL));
     int n1,n2,s,x,p,c;
     cout<<"Vvedit rozmir  mass1 (do 50 sumvoliv)= ";
     cin>>n1;
     cout<<"Vvedit rozmir  mass2 (do 50 sumvoliv)= ";
     cin>>n2;
     int mass1[100],mass2[100];
     int *mass3[100];
     for (int i=0; i<n1;i++)
     mass1[i]=rand()%10;
     
     for (int j=0; j<n2;j++)
     mass2[j]=rand()%10;
     cout << "Vibirite deistvie:\n 1-vuved mass;\n 2-perece4enie;\n 3-obedinenie;\n 4-raznoct:\n ";
     cin >> s;
  switch (s) 
     {
            case 1: {
cout<<"1 masuv:"<<endl;
for (int i=0; i<n1;i++)
cout<<mass1[i]<<" ";
cout<<endl;
cout<<"2 masuv:"<<endl;
for (int j=0; j<n2;j++)
cout<<mass2[j]<<" ";break;
}
            case 2:{ 
    p=0;int *mass3 = new int[p];
    for (int i = 0; i < n1; i++)
    { 
        int j=0, k=0;
        while (mass2[j] != mass1[i] && j < n2) j++;
        while (mass3[k] != mass1[i] && k < p) k++;
        if (j != n2 && k == p) 
        {mass3[p++] = mass1[i];}
    }
cout<<"1 masuv:"<<endl;
for (int i=0; i<n1;i++)
cout<<mass1[i]<<" ";
cout<<endl;
cout<<"2 masuv:"<<endl;
for (int j=0; j<n2;j++)
cout<<mass2[j]<<" ";
cout<<endl;
cout<<"3 masuv:"<<endl;
for (int i=0; i<p; i++)
cout << mass3[i] << " ";break;
    } 
            case 3: { 
    x = n1 + n2;
    int *mass3 = new int[x];
    for (int i=0; i<n1; i++)
    {mass3[i] = mass1[i];}
    for (int i=n1; i<x; i++)
    {mass3[i] = mass2[i - n1];}
cout<<"1 masuv:"<<endl;
for (int i=0; i<n1;i++)
cout<<mass1[i]<<" ";
cout<<endl;
cout<<"2 masuv:"<<endl;
for (int j=0; j<n2;j++)
cout<<mass2[j]<<" ";
cout<<endl;   
cout<<"3 masuv:"<<endl;
for (int i=0; i<x; i++)
cout << mass3[i] << " ";break;
    }   
           case 4: { 
     c=0;int *mass3 = new int[c];
     for (int i=0; i<n1; i++)
    {
        int j=0, f=0;
        while (mass2[j]!=mass1[i] && j<n2) j++;
        while (mass3[f]!=mass1[i] && f<c) f++;
        if (j==n2 && f==c) mass3[c++] = mass1[i];
     }   
cout<<"1 masuv:"<<endl;
for (int i=0; i<n1;i++)
cout<<mass1[i]<<" ";
cout<<endl;
cout<<"2 masuv:"<<endl;
for (int j=0; j<n2;j++)
cout<<mass2[j]<<" ";
cout<<endl;
cout<<"3 masuv:"<<endl;
for (int i=0; i<c; i++)
cout << mass3[i] << " ";break;
    }
default: cout<<"Error"; 
}
  getch();
  return 0;       
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2015, 16:33
Ответы с готовыми решениями:

Нужно чтоб, при выборе Область — автоматом поднимался список Регионов, при выборе Регион — населенные пункты
Доброго времени суток! Подскажите, пожалуйста! Есть набор данных: Область(2 значения),...

При неверном значении все ок просвечивается одна надпись,а при успехе сразу три
Привет всем я учусь на Паскале. Так вышло что я поставил сам себе задачу: У меня самое простое...

Как сделать так, что бы при верном ответе выполнялись одни действия, при неверном - другие?
Здравствуйте, я начинающий, прошу прощения за глупые вопросы. Я по поводу IF-a, то есть как...

Зацикливается при неверном вводе
есть такой кусочек while(true) { scanf(&quot;%d%c%d&quot;, &amp;x, &amp;zn, &amp;y); switch (zn) {...

4
1 / 1 / 4
Регистрация: 28.11.2014
Сообщений: 36
18.05.2015, 16:42 2
Если я правильно понял - запихнуть switch в while
0
28 / 5 / 9
Регистрация: 06.03.2015
Сообщений: 105
18.05.2015, 16:44  [ТС] 3
да...подскажите как
0
1 / 1 / 4
Регистрация: 28.11.2014
Сообщений: 36
18.05.2015, 16:54 4
Лучший ответ Сообщение было отмечено miros_0571 как решение

Решение

примерно так

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <stdlib.h>   
#include <conio.h>
#include <iostream.h>
 
main()
{
srand(time(NULL));
     int n1,n2,s,x,p,c;
     cout<<"Vvedit rozmir  mass1 (do 50 sumvoliv)= ";
     cin>>n1;
     cout<<"Vvedit rozmir  mass2 (do 50 sumvoliv)= ";
     cin>>n2;
     int mass1[100],mass2[100];
     int *mass3[100];
     for (int i=0; i<n1;i++)
     mass1[i]=rand()%10;
     
     for (int j=0; j<n2;j++)
     mass2[j]=rand()%10;
 
int vychod = 1;
while(vychod)
{
     cout << "Vibirite deistvie:\n 1-vuved mass;\n 2-perece4enie;\n 3-obedinenie;\n 4-raznoct:\n ";
     cin >> s;
  switch (s) 
     {
            case 1: {
cout<<"1 masuv:"<<endl;
for (int i=0; i<n1;i++)
cout<<mass1[i]<<" ";
cout<<endl;
cout<<"2 masuv:"<<endl;
for (int j=0; j<n2;j++)
cout<<mass2[j]<<" ";break;
}
            case 2:{ 
    p=0;int *mass3 = new int[p];
    for (int i = 0; i < n1; i++)
    { 
        int j=0, k=0;
        while (mass2[j] != mass1[i] && j < n2) j++;
        while (mass3[k] != mass1[i] && k < p) k++;
        if (j != n2 && k == p) 
        {mass3[p++] = mass1[i];}
    }
cout<<"1 masuv:"<<endl;
for (int i=0; i<n1;i++)
cout<<mass1[i]<<" ";
cout<<endl;
cout<<"2 masuv:"<<endl;
for (int j=0; j<n2;j++)
cout<<mass2[j]<<" ";
cout<<endl;
cout<<"3 masuv:"<<endl;
for (int i=0; i<p; i++)
cout << mass3[i] << " ";break;
    } 
            case 3: { 
    x = n1 + n2;
    int *mass3 = new int[x];
    for (int i=0; i<n1; i++)
    {mass3[i] = mass1[i];}
    for (int i=n1; i<x; i++)
    {mass3[i] = mass2[i - n1];}
cout<<"1 masuv:"<<endl;
for (int i=0; i<n1;i++)
cout<<mass1[i]<<" ";
cout<<endl;
cout<<"2 masuv:"<<endl;
for (int j=0; j<n2;j++)
cout<<mass2[j]<<" ";
cout<<endl;   
cout<<"3 masuv:"<<endl;
for (int i=0; i<x; i++)
cout << mass3[i] << " ";break;
    }   
           case 4: { 
     c=0;int *mass3 = new int[c];
     for (int i=0; i<n1; i++)
    {
        int j=0, f=0;
        while (mass2[j]!=mass1[i] && j<n2) j++;
        while (mass3[f]!=mass1[i] && f<c) f++;
        if (j==n2 && f==c) mass3[c++] = mass1[i];
     }   
cout<<"1 masuv:"<<endl;
for (int i=0; i<n1;i++)
cout<<mass1[i]<<" ";
cout<<endl;
cout<<"2 masuv:"<<endl;
for (int j=0; j<n2;j++)
cout<<mass2[j]<<" ";
cout<<endl;
cout<<"3 masuv:"<<endl;
for (int i=0; i<c; i++)
cout << mass3[i] << " ";break;
    }
default:{ vychod = 0;} 
}
}
  getch();
  return 0;       
}
Добавлено через 1 минуту
я передал вам общую идею
0
28 / 5 / 9
Регистрация: 06.03.2015
Сообщений: 105
18.05.2015, 17:00  [ТС] 5
Спасибо Вам огромное !!!
0
18.05.2015, 17:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2015, 17:00
Помогаю со студенческими работами здесь

Вывести ошибку при неверном вводе
Всем привет! Задача: Вывести логин и пароль для сайта введенного пользователем. Если сайта...

Label при неверном логине/пароле
Есть окно авторизации,хочу чтобы при вводе неправильного логина или пароля появлялся Label1.Text =...

Как перезапустить программу?
Нужно чтобы по окончанию игры и выборе &quot;сыграть ещё раз&quot; игра перезапускалась снова в этом же окне...

Как перезапустить программу
мне нужно чтобы программа запускалась заново или все переменные очистились (во всей программе) и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru