Более компактная запись switch - C (СИ)

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

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

Возник вопрос: можно ли в моём случае записать switch как-то более компактно и уложиться в меньшее количество строк? Фрагмент кода приложен
srand(unsigned(time(NULL)));
    int h, i(0);
    int mas[100] = { 0 };
    size_t count(0);
    for (;;)
    {
        h = rand() % 81;                 //here
        if (mas[h])
            continue;
        cout << a[h] << '\n';
        _getch();
 
        switch (h)
        {
        case 0: x[count++] = b[0]; break;
        case 1: x[count++] = b[1]; break;
        case 2: x[count++] = b[2]; break;
        case 3: x[count++] = b[3]; break;
        case 4: x[count++] = b[4]; break;
        case 5: x[count++] = b[5]; break;
        case 6: x[count++] = b[6]; break;
        case 7: x[count++] = b[7]; break;
        case 8: x[count++] = b[8]; break;
        case 9: x[count++] = b[9]; break;
        case 10: x[count++] = b[10]; break;
        case 11: x[count++] = b[11]; break;
        case 12: x[count++] = b[12]; break;
        case 13: x[count++] = b[13]; break;
        case 14: x[count++] = b[14]; break;
        case 15: x[count++] = b[15]; break;
        case 16: x[count++] = b[16]; break;
        case 17: x[count++] = b[17]; break;
        case 18: x[count++] = b[18]; break;
        case 19: x[count++] = b[19]; break;
        case 20: x[count++] = b[20]; break;
        case 21: x[count++] = b[21]; break;
        case 22: x[count++] = b[22]; break;
        case 23: x[count++] = b[23]; break;
        case 24: x[count++] = b[24]; break;
        case 25: x[count++] = b[25]; break;
        case 26: x[count++] = b[26]; break;
        case 27: x[count++] = b[27]; break;
        case 28: x[count++] = b[28]; break;
        case 29: x[count++] = b[29]; break;
        case 30: x[count++] = b[30]; break;
        case 31: x[count++] = b[31]; break;
        case 32: x[count++] = b[32]; break;
        case 33: x[count++] = b[33]; break;
        case 34: x[count++] = b[34]; break;
        case 35: x[count++] = b[35]; break;
        case 36: x[count++] = b[36]; break;
        case 37: x[count++] = b[37]; break;
        case 38: x[count++] = b[38]; break;
        case 39: x[count++] = b[39]; break;
        case 40: x[count++] = b[40]; break;
 
        default: printf("nein\n");
        }

Решение задачи: «Более компактная запись switch»

textual
Листинг программы
x[count++] = b[h];

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

В данном коде выполняется следующие действия:

  1. Переменная count увеличивается на единицу.
  2. В массив x записывается значение переменной b с индексом h. Пример оформления в виде списка:
  3. Увеличиваем count на единицу.
  4. Записываем в x значение b с индексом h.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

12   голосов , оценка 3.917 из 5