Функция поворота двумерного массива на 180 градусов, против часовой стрелки - C (СИ)
Формулировка задачи:
Пожалуйста напишите функцию поворота двумерного массива на 180 градусов, против часовой стрелки.
Массив 5x5
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> #define ROW 5 #define COLUMN 5 void Display(int *mas, int r, int c)//display function { int i, j; printf("Table of arrays:\n\n"); for(i = 0; i < r; i++) { for (j = 0; j < c; j++) { printf("%d\t",*(mas+i*c+j));//arrays through the pointers } printf("\n"); } } void Process(int mas[ROW][COLUMN]) { int i,j; int work=0; for (i=0;i<ROW/2;i++) for (j=0;j<COLUMN;j++){ work=mas[i][j]; mas[i][j] = mas[ROW-i+1][COLUMN-j+1]; mas[ROW-i+1][COLUMN-j+1]=work; } if (ROW % 2==1){ i= (ROW / 2)+1; for (j=0;j< (ROW / 2);j++){ work=mas[i][j]; mas[i][j] = mas[ROW-i+1][COLUMN-j+1]; mas[ROW-i+1][COLUMN-j+1]=work; } printf("\n%d",mas[i][j]); } } int main() { int mas[ROW][COLUMN]; int i, j; printf("Programming language\nVariant 9\n\n"); srand(time(NULL));//changing random numbers in each running of the programm for (i = 0; i < ROW; i++) //creating 2D array for (j = 0; j < COLUMN; j++) { mas[i][j]=rand()%160-80;//filling 2D array with random numbers } Display(*mas,ROW,COLUMN); Process(mas); system("pause"); getch(); }
у меня выходит так но все равно неправильно! заранее спасибо за ответ
Решение задачи: «Функция поворота двумерного массива на 180 градусов, против часовой стрелки»
textual
Листинг программы
#include <iostream> #include <iomanip> using namespace std; for (i = 0; i < ROW; i++) { for (j = 0; j < COLUMN; j++) { cout<<setw(4)<<mas[ROW-i-1][COLUMN-j-1]; } cout<<endl; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с потоками ввода-вывода и манипуляциями с выводом.
- Создается двумерный массив типа double с именем mas, размерность которого определяется в процессе выполнения программы.
- Используется директива #pragma для компиляции кода, который будет выполняться на компьютере без изменений.
- Задаются размеры массива в виде констант типа int с именами ROW и COLUMN.
- Создаются две переменные типа int с именами i и j, которые будут использоваться в двух вложенных циклах.
- Внешний цикл for выполняется столько раз, сколько строк в массиве.
- Внутренний цикл for выполняется столько раз, сколько столбцов в массиве.
- С помощью функции cout и манипулятора setw выводится элемент массива с индексами (ROW-i-1)(COLUMN-j-1) в формате с фиксированной шириной поля вывода.
- В конце каждой итерации внутреннего цикла выводится символ новой строки '\n'.
- В конце каждой итерации внешнего цикла выводится символ новой строки '\n'.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д