Задать массив в case`ах - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вот столкнулся с проблемой, хочу массив указать в switch`e:
cout<<"Тип массива\n(1) Целочисленный\n(2) Дробный\n(3) Текстовый\n";
cin>>type;
const int N_A = 12, N_B=12, N_C=N_A+N_B;
int C[N_C], A[N_A], B[N_B];
switch (type){
 
    case 1: 
        int C[N_C]={0}, A[N_A]={1,2,3,4,5,6,7,8,9,10,11,12}, B[N_B]={10,11,12,13,14,15,16,17,18,19,20,21};break;
    case 2: 
int C[N_C]={x}, A[N_A]={q,w,e,r,t,y,u,i,o,p,a,s}, B[N_B]={p,a,s,d,f,g,h,j,k,l,z,c};break;
...
да вот я понял что нельзя так делать, ругается компилятор есть конечно другой вариант, делать три вида массивов и в каждом кейсе писать тот массив что нужен мне. можно ли всё таки как-то в свиче задать массив - так экономней по написанию кода будет

Решение задачи: «Задать массив в case`ах»

textual
Листинг программы
cout<<"Тип массива\n(1) Целочисленный\n(2) Дробный\n(3) Текстовый\n";
cin>>type;
const int N_A = 12, N_B=12, N_C=N_A+N_B;
int     C[N_C], A[N_A], B[N_B];
switch (type){
 
        case 1: 
if(true)
{
                int     C[N_C]={0}, A[N_A]={1,2,3,4,5,6,7,8,9,10,11,12}, B[N_B]={10,11,12,13,14,15,16,17,18,19,20,21};
}
break;
        case 2: 
if(true)
{
int     C[N_C]={x}, A[N_A]={q,w,e,r,t,y,u,i,o,p,a,s}, B[N_B]={p,a,s,d,f,g,h,j,k,l,z,c};
}
break;

Объяснение кода листинга программы

  1. Пользователю предлагается выбрать тип массива для создания.
  2. Затем пользователю предлагается ввести тип массива.
  3. Далее определены константы для размеров массивов A, B и C.
  4. Затем созданы массивы A, B и C.
  5. После этого происходит проверка введенного пользователем типа массива с помощью оператора switch.
  6. В случае если пользователь ввел 1, то создаются и заполняются массивы A, B и C определенным образом.
  7. В случае если пользователь ввел 2, то создаются и заполняются массивы A, B и C другим образом.

Оцени полезность:

11   голосов , оценка 3.455 из 5
Похожие ответы