题目描述
编写程序将如下的一个数组a向右旋转90度,构成新的数组b,并打印出来。
a =
1 2
3 4
5 6
7 8
旋转后
b =
7 5 3 1
8 6 4 2
输入输出提示
**输出提示信息:"Array a:n" "Array b:n" **输出格式要求:"%4d" 12
程序运行实例
Array a: 1 2 3 4 5 6 7 8 Array b: 7 5 3 1 8 6 4 2 12345678
一、解题思路
水题,与矩阵转置算法十分类似,可以在草纸上列出计算即可发现规律,且矩阵已在程序初始化时已经给出。如果OJ只检测输入输出的话,直接print打出相应的矩阵也未尝不可:)
二、题解
源代码
代码如下:
/* * Author:FeverTwice * Date:2021-06-02 * Func:Solution for Competition */ #include <stdio.h> #define M 4 #define N 2 main() { int a[M][N] = {{1, 2}, {3, 4}, {5, 6}, {7, 8}}; int b[N][M], i, j; printf("Array a:n"); for (i = 0; i < M; i++) { for (j = 0; j < N; j++) { printf("%4d", a[i][j]); b[j][M - 1 - i] = a[i][j]; } printf("n"); } printf("Array b:n"); for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { printf("%4d", b[i][j]); } printf("n"); } }
1234567891011121314151617181920212223242526272829303132333435写在最后
各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟! <(^-^)>
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位同志作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知