Вывести боковую грань трехмерного массива - 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, которая выводит определенную грань трехмерного массива.
enum {printFront, printBack, printTop, printBottom, printSideLeft, printSideRight};
- в начале кода определена константа enum, которая содержит возможные режимы вывода грани.void printWall(int ***arr, int n, int m, int z, int curMode)
- функция printWall принимает пять аргументов: трехмерный массив arr, размеры этого массива n, m, z, а также текущий режим вывода curMode.int i, j;
- внутри функции объявлены две переменные i и j, которые будут использоваться для обхода массива.switch (curMode)
- происходит проверка текущего режима вывода.case printFront:
- если текущий режим printFront, то выполняется код внутри этого case. Код выводит переднюю грань трехмерного массива, то есть все значения первого столбца массива.case printBack:
- если текущий режим printBack, то выполняется код внутри этого case. Код выводит заднюю грань трехмерного массива, то есть все значения последнего столбца массива.case printTop:
- если текущий режим printTop, то выполняется код внутри этого case. Код выводит верхнюю грань трехмерного массива, то есть все значения первого ряда массива.case printBottom:
- если текущий режим printBottom, то выполняется код внутри этого case. Код выводит нижнюю грань трехмерного массива, то есть все значения последнего ряда массива.case printSideLeft:
- если текущий режим printSideLeft, то выполняется код внутри этого case. Код выводит левую боковую грань трехмерного массива, то есть все значения первого столбца массива.case printSideRight:
- если текущий режим printSideRight, то выполняется код внутри этого case. Код выводит правую боковую грань трехмерного массива, то есть все значения последнего столбца массива.default:
- если текущий режим не соответствует ни одному из указанных выше, то выполняется код внутри этого case. Выводится сообщение об ошибке.- Код внутри функции printWall выполняется последовательно, переходя от одного case к другому, пока не будет достигнуто условие завершения работы функции.
- В конце функции нет оператора return, поэтому по умолчанию возвращается значение NULL.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д