Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 100;
- void print(int a[N], int n) {
- printf("[");
- for (int i = 0; i < n; ++i) {
- printf("%s%2d", i > 0 ? ", " : "", a[i]);
- }
- printf("]");
- }
- void print(int a[N][N], int n) {
- printf("[");
- for (int i = 0; i < n; ++i) {
- if (i > 0) printf(" ");
- print(a[i], n);
- printf("%s", i+1 < n ? ",\n" : "");
- }
- printf("]\n");
- }
- void mirror_horizontally(int a[N][N], int n) {
- for (int i = 0; i < n; ++i) {
- for (int j = 0; j < n/2; ++j) {
- swap(a[i][j], a[i][n-1-j]);
- }
- }
- }
- void mirror_along_main_diagonal(int a[N][N], int n) {
- for (int i = 0; i < n; ++i) {
- for (int j = 0; j < i; ++j) {
- swap(a[i][j], a[j][i]);
- }
- }
- }
- void rotate_clockwise(int a[N][N], int n) {
- mirror_along_main_diagonal(a, n);
- mirror_horizontally(a, n);
- }
- int main() {
- int a[N][N];
- int n = 4;
- for (int i = 0; i < n; ++i) {
- for (int j = 0; j < n; ++j) {
- a[i][j] = i*n + j;
- }
- }
- print(a, n);
- mirror_horizontally(a, n);
- print(a, n);
- mirror_horizontally(a, n);
- print(a, n);
- mirror_along_main_diagonal(a, n);
- print(a, n);
- mirror_along_main_diagonal(a, n);
- print(a, n);
- rotate_clockwise(a, n);
- print(a, n);
- rotate_clockwise(a, n);
- print(a, n);
- rotate_clockwise(a, n);
- print(a, n);
- rotate_clockwise(a, n);
- print(a, n);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement