пропуск инициализации из-за метки case. помогите срочно, завтра экзамен(
Писал код для экзамена и возникла проблема которая все портит.
#include <iostream>
using namespace std;
// Функция для поиска элемента elem в массиве arr размера size
bool search(int* arr, int size, int elem)
{
for (int i = 0; i < size; ++i)
{
if (arr[i] == elem)
{
return true;
}
}
return false;
}
// Функция для удаления элементов, превышающих указанное значение
int* remove_excess(int* arr, int& size, int max_value)
{
int* new_arr = new int[size];
int new_size = 0;
for (int i = 0; i < size; ++i)
{
if (arr[i] <= max_value)
{
new_arr[new_size++] = arr[i];
}
}
delete[] arr;
size = new_size;
return new_arr;
}
// Функция для сортировки массива по убыванию
void sort_desc(int* arr, int size)
{
for (int i = 0; i < size - 1; ++i)
{
for (int j = i + 1; j < size; ++j)
{
if (arr[i] < arr[j]) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
// Функция для вывода массива на экран
void print_array(int* arr, int size)
{
for (int i = 0; i < size; ++i)
{
cout << arr[i] << ' ';
}
cout << '\n';
}
int main()
{
setlocale(0, "");
srand(time(0));
int M, N, SET;
bool valid_input = false;
while (!valid_input)
{
cout << "Введите размер массива Аrray1: ";
cin >> M;
if (M > 0)
{
valid_input = true;
}
else
{
cerr << "Ошибка: размер массива должен быть положительным\n";
}
}
valid_input = false;
while (!valid_input)
{
cout << "Введите размер массива Аrray2: ";
cin >> N;
if (N > 0)
{
valid_input = true;
}
else
{
cerr << "Ошибка: размер массива должен быть положительным\n";
}
}
int* A = new int[M];
int* B = new int[N];
int valid_count = 0;
bool valid_elem = false;
cout << "Введите элементы массива Аrray1:\n";
for (int i = 0; i < M; ++i)
{
valid_elem = false;
while (!valid_elem)
{
cout << "A[" << i << "] = ";
cin >> A[i];
if (A[i] >= 1 && A[i] <= 99)
{
valid_elem = true;
++valid_count;
}
else
{
cerr << "Ошибка: элементы массива должны быть в диапазоне от 1 до 99\n";
}
}
}
cout << "Массив Аrray2, сгенерированный случайным образом:\n";
for (int i = 0; i < N; ++i)
{
B[i] = rand() % 99 + 1;
cout << B[i] << ' ';
}
cout << '\n';
int max_value;
valid_input = false;
while (!valid_input)
{
cout << "Введите значение, до которого нужно удалить элементы: ";
cin >> max_value;
if (max_value >= 1 && max_value <= 99)
{
valid_input = true;
}
else
{
cerr << "Ошибка: значение должно быть в диапазоне от 1 до 99\n";
}
}
cout << "1. Создание массива, не включающего элементы массива B\n";
cout << "2. Создание массива, не включающего общие элементы массивов A и B\n";
cout << "3. Массив, включающий все элементы обоих массивов, отсортированный по убыванию\n";
switch (SET)
{
case 1:
// Создание третьего массива, не включающего элементы массива B
int* C = new int[valid_count];
int c_cnt = 0;
for (int i = 0; i < M; ++i)
{
if (!search(B, N, A[i]) && !search(C, c_cnt, A[i]))
{
C[c_cnt++] = A[i];
}
}
// Вывод третьего массива на экран
cout << "Массив, не включающий элементы массива B:\n";
print_array(C, c_cnt);
break;
case 2:
// Создание четвертого массива, не включающего общие элементы массивов A и B
int* D = new int[valid_count + N];
int d_cnt = 0;
for (int i = 0; i < M; ++i)
{
if (!search(B, N, A[i]) && !search(D, d_cnt, A[i]))
{
D[d_cnt++] = A[i];
}
}
for (int i = 0; i < N; ++i)
{
if (!search(A, M, B[i]) && !search(D, d_cnt, B[i]))
{
D[d_cnt++] = B[i];
}
}
// Вывод четвертого массива на экран
cout << "Массив, не включающий общие элементы массивов A и B:\n";
print_array(D, d_cnt);
break;
case 3:
// Создание пятого массива, включающего все элементы обоих массивов
int* E = new int[valid_count + N];
int e_cnt = 0;
for (int i = 0; i < M; ++i)
{
if (!search(E, e_cnt, A[i]))
{
E[e_cnt++] = A[i];
}
}
for (int i = 0; i < N; ++i)
{
if (!search(E, e_cnt, B[i]))
{
E[e_cnt++] = B[i];
}
}
// Удаление элементов, превышающих указанное пользователем значение
int* new_E = remove_excess(E, e_cnt, max_value);
// Сортировка пятого массива по убыванию
sort_desc(new_E, e_cnt);
// Вывод пятого массива на экран
cout << "Массив, включающий все элементы обоих массивов, отсортированный по убыванию:\n";
print_array(new_E, e_cnt);
delete[] A;
delete[] B;
delete[] C;
delete[] D;
delete[] new_E;
return 0;
}
}
Оставить код без меню нельзя, т.к. этого просит задание. Можете исправить мою ошибку?