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