0 / 0 / 0
Регистрация: 21.01.2020
Сообщений: 6
1

Не работает switch, не правильно выполняет кейсы

01.02.2020, 19:21. Показов 921. Ответов 2

Вот такой код. Первый раз выполняет второй кейс, а второй раз не срабатывает. В чем проблема? Нужно что бы по умолчанию сортировал по убыванию, а потом была возможность сортировки по возрастанию.

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
#include <windows.h>
#include <conio.h>
#include <iostream>
#include <time.h>
 
using namespace std;
int сhoece = 1;
void serch(int mas[], int size, int сhoece)
{
    int k, i, j, x;
    switch (сhoece)
    {case 1:
        for (i = 0; i < size; i++)
        {
            k = i;
            x = mas[i];
            for (j = i + 1; j < size; j++)
                if (mas[j] < x)
                {
                    k = j;
                    x = mas[j];
                }
            mas[k] = mas[i];
            mas[i] = x;
        }
    case 2:
    for (i = 0; i < size; i++)
    {
        k = i;
        x = mas[i];
        for (j = i + 1; j < size; j++)
            if (mas[j] > x)
            {
                k = j;
                x = mas[j];
            }
        mas[k] = mas[i];
        mas[i] = x;
    }
    }
        return;
}
 
 
 
    int main(void)
    {
        int i1 = GetConsoleCP();
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        srand(time(NULL));
 
        system("cls");
 
        const int size = 10;
        int mas[size];
 
        cout << "Исходный массив:\n";
        for (int i = 0; i < size;i++)
        {
            mas[i] = rand() % -100;
        }
        serch(mas, size, сhoece);
        for (int i = 0; i < size;i++)
        {
            cout << mas[i] << " ";
        }
        cout << "\nДля сортировки по возрастанию нажмите '1'\n";
        cin >> сhoece;
        serch(mas, size, сhoece);
        return(0);
    }
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2020, 19:21
Ответы с готовыми решениями:

Можно ли в кейсы оператора switch() прописывать условия, вместо заранее известных значений ?
пытаюсь определенный промежуток хп (например от 20 до 40) вбить в условие кейса, не получается....

Цикл switch case работает не правильно
Цикл switch работает только по первому условию public override void BuildBread_products(int...

Какую функцию выполняет switch?
какую функцию,выполняет switch?скажем есть switch(10); case 1: case 2: ... break; эта цифра...

Switch-case не выполняет один из пунктов
Есть switch, при вводе всех значений, кроме 3 он выполняется. При вводе значения 3 - игнорируется....

2
Нарушитель
8298 / 4372 / 1002
Регистрация: 12.03.2015
Сообщений: 20,427
01.02.2020, 19:33 2
break
сюда читай.
1
фрилансер
4428 / 3935 / 858
Регистрация: 11.10.2019
Сообщений: 10,405
01.02.2020, 19:36 3
если отформатировать, видно, что не хватает break

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
#include <windows.h>
#include <conio.h>
#include <iostream>
#include <time.h>
 
void search(int mas[], int size, int choice)
{
    int k, i, j, x;
    switch (choice)
    {
        case 1:
        {
            for (i = 0; i < size; i++)
            {
                k = i;
                x = mas[i];
                for (j = i + 1; j < size; j++)
                {
                    if (mas[j] < x)
                    {
                        k = j;
                        x = mas[j];
                    }
                }
                mas[k] = mas[i];
                mas[i] = x;
            }
        }break;
 
        case 2:
        {
            for (i = 0; i < size; i++)
            {
                k = i;
                x = mas[i];
                for (j = i + 1; j < size; j++)
                {
                    if (mas[j] > x)
                    {
                        k = j;
                        x = mas[j];
                    }
                }
                mas[k] = mas[i];
                mas[i] = x;
            }
        }break;
    }
 
    return;
}
 
int main(void)
{
    using namespace std;
 
    int i1 = GetConsoleCP();
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand(time(NULL));
 
    system("cls");
 
    const int size = 10;
    int mas[size];
 
    cout << "Исходный массив:\n";
    for (int i = 0; i < size;i++)
    {
        mas[i] = rand() % -100;
    }
 
    int choice = 1;
    search(mas, size, choice);
    for (int i = 0; i < size;i++)
    {
        cout << mas[i] << " ";
    }
    cout << "\nДля сортировки по возрастанию нажмите '1'\n";
    cin >> choice;
    search(mas, size, choice);
    return(0);
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2020, 19:36
Помогаю со студенческими работами здесь

Напишите структуру switch, которая выполняет следуя действия как что значение переменной grade равно:
Напишите структуру switch, которая выполняет следуя действия как что значение переменной grade...

Как правильно использовать Switch()
Добрый вечер, пишу программу с использованием SWITCH() Суть проги: Напишите программу, которая...

Как правильно использовать switch?
Как правильно пользоваться Switch? Если s от 0 до 10 должно выполняться одно действие, если от 10...

Как правильно составить цикл который выполняет каждую команду с разной паузой - Android
Мне нужно при нажатии кнопки, допустим button1 и button2 выполнять следующее: При нажатии на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru