Циклический сдвиг элементов матрицы - C (СИ)

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

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

Осуществить циклический сдвиг элементов столбцов матрицы на m элементов вправо. Подскажите как реализовать. Заранее спасибо

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define N 7
#define M 9
int main()
{
    int A[N][M], i, j, q, m, temp = 1;
    puts("Enter the number of shift:");
    while(1 != scanf("%d", &m)){
        getchar();
        puts("Error!Try again.");
    }
    if(m >= M)
        m -= M;
    for(j = 0; j < M; j++)
        for(i = 0; i < N; i++)
            A[i][j] = temp++;
    for(i = 0; i < N; i++, putchar('\n'))
        for(j = 0; j < M; j++)
            printf("%3d", A[i][j]);
    for(i = 0; i < N; i++)
        for(q = 0; q < m; q++){
            temp = A[i][M - 1];
            for(j = M - 1; j > 0; j--)
                A[i][j] = A[i][j - 1];
            A[i][0] = temp;
        }
    putchar('\n');
    for(i = 0; i < N; i++, putchar('\n'))
        for(j = 0; j < M; j++)
            printf("%3d", A[i][j]);
    return 0;
}

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

  1. Объявление переменных:
    • A - двумерный массив размером N на M для хранения элементов;
    • i, j, q, m - индексы для обращения к элементам матрицы;
    • temp - временная переменная для хранения значений;
    • puts, scanf, getchar, printf - функции ввода/вывода для работы с пользователем и вывода результатов.
  2. Запрос у пользователя количества сдвига элементов матрицы.
  3. Проверка корректности введенного значения: пока не будет введено целое число, выводить сообщение об ошибке и просить ввести значение заново.
  4. Ограничение введенного значения: если количество сдвига больше, чем размер матрицы по второму измерению, уменьшить его до ближайшего меньшего значения.
  5. Инициализация всех элементов матрицы значением temp.
  6. Вывод значений всех элементов матрицы в формате 3d.
  7. Сдвиг элементов матрицы вправо на количество позиций, равное m.
  8. Вывод значений всех элементов матрицы в формате 3d.
  9. Возврат значения 0 для успешного завершения программы.

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


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

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

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