Вывести боковую грань трехмерного массива - C (СИ)

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

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

Доброго дня, помогите вывести боковую грань трехмерного массива. Заранее спасибо

Решение задачи: «Вывести боковую грань трехмерного массива»

textual
Листинг программы
enum {printFront, printBack, printTop, printBottom, printSideLeft, printSideRight};
 
void printWall(int ***arr, int n, int m, int z, int curMode)
{
    int i, j;
    switch (curMode)
    {
    case printFront:
        for (i = 0; i < n; ++i)
        {
            for (j = 0; j < m; ++j) printf("%5d", arr[i][j][0]);
            printf("\n");
        }
        break;
    case printBack:
        for (i = 0; i < z; ++i)
        {
            for (j = 0; j < m; ++j) printf("%5d", arr[i][j][z-1]);
            printf("\n");
        }
        break;
    case printTop:
        for (i = 0; i < z; ++i)
        {
            for (j = 0; j < m; ++j) printf("%5d", arr[0][j][i]);
            printf("\n");
        }
        break;
    case printBottom:
        for (i = 0; i < z; ++i)
        {
            for (j = 0; j < m; ++j) printf("%5d", arr[n-1][j][i]);
            printf("\n");
        }
        break;
    case printSideLeft:
        for (i = 0; i < n; ++i)
        {
            for (j = 0; j < z; ++j) printf("%5d", arr[i][0][j]);
            printf("\n");
        }
        break;
    case printSideRight:
        for (i = 0; i < n; ++i)
        {
            for (j = 0; j < z; ++j) printf("%5d", arr[i][m-1][j]);
            printf("\n");
        }
        break;
    default:
        printf("Error mode %d!\n", curMode);
    }
}

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

В данном коде реализована функция printWall, которая выводит определенную грань трехмерного массива.

  1. enum {printFront, printBack, printTop, printBottom, printSideLeft, printSideRight}; - в начале кода определена константа enum, которая содержит возможные режимы вывода грани.
  2. void printWall(int ***arr, int n, int m, int z, int curMode) - функция printWall принимает пять аргументов: трехмерный массив arr, размеры этого массива n, m, z, а также текущий режим вывода curMode.
  3. int i, j; - внутри функции объявлены две переменные i и j, которые будут использоваться для обхода массива.
  4. switch (curMode) - происходит проверка текущего режима вывода.
  5. case printFront: - если текущий режим printFront, то выполняется код внутри этого case. Код выводит переднюю грань трехмерного массива, то есть все значения первого столбца массива.
  6. case printBack: - если текущий режим printBack, то выполняется код внутри этого case. Код выводит заднюю грань трехмерного массива, то есть все значения последнего столбца массива.
  7. case printTop: - если текущий режим printTop, то выполняется код внутри этого case. Код выводит верхнюю грань трехмерного массива, то есть все значения первого ряда массива.
  8. case printBottom: - если текущий режим printBottom, то выполняется код внутри этого case. Код выводит нижнюю грань трехмерного массива, то есть все значения последнего ряда массива.
  9. case printSideLeft: - если текущий режим printSideLeft, то выполняется код внутри этого case. Код выводит левую боковую грань трехмерного массива, то есть все значения первого столбца массива.
  10. case printSideRight: - если текущий режим printSideRight, то выполняется код внутри этого case. Код выводит правую боковую грань трехмерного массива, то есть все значения последнего столбца массива.
  11. default: - если текущий режим не соответствует ни одному из указанных выше, то выполняется код внутри этого case. Выводится сообщение об ошибке.
  12. Код внутри функции printWall выполняется последовательно, переходя от одного case к другому, пока не будет достигнуто условие завершения работы функции.
  13. В конце функции нет оператора return, поэтому по умолчанию возвращается значение NULL.

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


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

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

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