Переместить элементы периметра прямоугольной матрицы на 1 элемент по часовой стрелке - C (СИ)
Формулировка задачи:
Дана прямоугольная матрица А.Переместить элементы её периметра на 1 элемент по часовой стрелке.Вот такая вот задачка,нужна помощь в написании кода
Решение задачи: «Переместить элементы периметра прямоугольной матрицы на 1 элемент по часовой стрелке»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
#include <iostream>
int main()
{
setlocale(LC_ALL, "Russian");
int M, N;
printf("введите число строк\n");
scanf("%d", &M);
printf("введите число столбцов\n");
scanf("%d", &N);
double A[m][n], r;
//Ввод матрицы А
printf("\n Введите элементы матрицы А через пробел или Enter\n");
int i, j; //Индексы строк и столбцов
// От i нулевого до j макс
for (i = 0; i<M; i++)
for (j = 0; j<N; j++)
scanf("%lf", &A[i][j]);
/*Вывод мтариц на экран*/
printf("\n Матрица А \n");
for (i = 0; i<M; i++)
{
printf("%d строка: ", i + 1);
for (j = 0; j<N; j++)
printf("%.1lf ", A[i][j]);
printf("\n");
getch();
}
r = A[0][0];
for (int i = 0; i < M - 1; i++)
A[i][0] = A[i + 1][0];
for (i = 0; i < N - 1; i++)
A[M - 1][i] = A[M - 1][i + 1];
for (i = M - 1; i > 0; i--)
A[i][N - 1] = A[i - 1][N - 1];
for (i = N - 1; i > 0; i--)
A[0][i] = A[0][i - 1];
A[0][0] = r;
//вывод
for (i = 0; i<M; i++)
{
printf("%d строка: ", i + 1);
for (j = 0; j<N; j++)
printf("%.1lf ", A[i][j]);
printf("\n");
}
system("pause");
}
Объяснение кода листинга программы
- Объявляются переменные M и N для ввода количества строк и столбцов матрицы соответственно.
- С помощью функции scanf осуществляется ввод матрицы А.
- Выполняется вывод матрицы А на экран.
- Переменная r инициализируется значением элемента A[0][0].
- В цикле для перемещения элементов периметра матрицы влево верхний правый нижний угол:
- элементы A[i][0] присваивается значение A[i + 1][0] для i от 0 до M-2
- элементы A[M-1][i] присваивается значение A[M-1][i + 1] для i от 0 до N-2
- элементы A[i][N-1] присваивается значение A[i - 1][N-1] для i от M-1 до 1
- элементы A[0][i] присваивается значение A[0][i - 1] для i от N-1 до 1
- Перемещенный элемент A[0][0] присваивается переменной r.
- Выполняется повторный вывод матрицы А на экран.