From 8bd39a5581307c16ce99eb5e5b928cd14252f6f1 Mon Sep 17 00:00:00 2001 From: begeekmyfriend Date: Sat, 22 Jul 2017 21:09:14 +0800 Subject: [PATCH] Rotate image Signed-off-by: begeekmyfriend --- 048_rotate_image/Makefile | 2 ++ 048_rotate_image/rotate.c | 48 ++++++++++++++++++++++++++++++++++++++ 048_rotate_image/test | Bin 0 -> 8816 bytes 3 files changed, 50 insertions(+) create mode 100644 048_rotate_image/Makefile create mode 100644 048_rotate_image/rotate.c create mode 100755 048_rotate_image/test diff --git a/048_rotate_image/Makefile b/048_rotate_image/Makefile new file mode 100644 index 0000000..152b201 --- /dev/null +++ b/048_rotate_image/Makefile @@ -0,0 +1,2 @@ +all: + gcc -O2 -o test rotate.c diff --git a/048_rotate_image/rotate.c b/048_rotate_image/rotate.c new file mode 100644 index 0000000..a332eef --- /dev/null +++ b/048_rotate_image/rotate.c @@ -0,0 +1,48 @@ +#include +#include + +static void rotate(int** matrix, int matrixRowSize, int matrixColSize) { + int i, j; + if (matrixRowSize != matrixColSize) { + return; + } + + for (i = 0; i < matrixRowSize / 2; i++) { + int low = i, high = matrixColSize - i - 1; + for (j = low; j < high; j++) { + int tmp = matrix[i][j]; + matrix[i][j] = matrix[matrixColSize - 1 - j][i]; + matrix[matrixColSize - 1 - j][i] = matrix[matrixRowSize - 1 - i][matrixColSize - 1 - j]; + matrix[matrixRowSize - 1 - i][matrixColSize - 1 - j] = matrix[j][matrixRowSize - 1 - i]; + matrix[j][matrixRowSize - 1 - i] = tmp; + } + } +} + +int main(int argc, char **argv) +{ + if (argc != 3) { + fprintf(stderr, "Usage: ./test 3 3\n"); + } + + int i, j, count = 0; + int row_size = atoi(argv[1]); + int col_size = atoi(argv[2]); + int **matrix = malloc(row_size * sizeof(int *)); + for (i = 0; i < row_size; i++) { + matrix[i] = malloc(col_size * sizeof(int)); + for (j = 0; j < col_size; j++) { + matrix[i][j] = count++; + } + } + + rotate(matrix, row_size, col_size); + for (i = 0; i < col_size; i++) { + for (j = 0; j < row_size; j++) { + printf("%02d ", matrix[i][j]); + } + putchar('\n'); + } + + return 0; +} diff --git a/048_rotate_image/test b/048_rotate_image/test new file mode 100755 index 0000000000000000000000000000000000000000..34e824370c84d42c30de2fbd055fe4bec252f3e3 GIT binary patch literal 8816 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 literal 0 HcmV?d00001