Циклом вывести 4 угловых элемента матрицы. Какой цикл? - C (СИ)

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

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

Добрый день. Необходимо циклом вывести 4 угловых элемента матрицы. Какой цикл?
    for(i = 0; i < XXX; i = XXX) {
        for(j = 0; j < XXX; j = XXX) {
            printf("%d ", array[i][j]);
        }
Что вместо XXX подставить? Спасибо.
    for(i = 0; i <= n; i = i + n - 1) {
        for(j = 0; j <= i; j = j + n - 1) {
Этот фрагмент не видит правый верхний угол... Остальные выписывает.
Все, нашел. Тема закрыта )
    for(i = 0; i < n; i = i + n - 1) {
        for(j = 0; j < n; j = j + n - 1) {

Решение задачи: «Циклом вывести 4 угловых элемента матрицы. Какой цикл?»

textual
Листинг программы
#include <stdio.h>
 
#define ROWS 4
#define COLUMNS 5
 
int main(void) {
    int i, matrix[ROWS][COLUMNS] = {
        { 11, 12, 13, 14, 15 },
        { 21, 22, 23, 24, 25 },
        { 31, 32, 33, 34, 35 },
        { 41, 42, 43, 44, 45 }
    };
    
    for ( i = 0; i < 4; ++i )
        printf("%d\n", matrix[(i & 1) * (ROWS - 1)][((i / 2) & 1) * (COLUMNS - 1)]);
    
    return 0;
}

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

В этом коде объявлена матрица matrix размером 4x5, заполненная значениями от 11 до 45. Затем используется цикл for, который выполняется 4 раза. В каждой итерации цикла выводится значение элемента матрицы, которое вычисляется по следующему алгоритму:

  1. i & 1 возвращает последний бит числа i, то есть его чётность.
  2. (ROWS - 1) возвращает размер матрицы по строкам минус один.
  3. ((i / 2) & 1) возвращает чётность числа i / 2.
  4. (COLUMNS - 1) возвращает размер матрицы по столбцам минус один. Таким образом, на каждой итерации цикла выводится элемент матрицы, соответствующий номеру строки и столбца, вычисленному по указанному алгоритму. Список действий:
  5. Объявить матрицу matrix размером 4x5 и заполнить её значениями от 11 до 45.
  6. Выполнить цикл for 4 раза.
  7. В каждой итерации цикла вычислить номер строки и столбца, соответствующий числу i.
  8. Вывести значение элемента матрицы, соответствующего вычисленному номеру строки и столбца.
  9. Вернуть 0, чтобы указать, что программа успешно завершилась.

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

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