题目描述
编写程序将如下的一个数组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"
程序运行实例
Array a:
1 2
3 4
5 6
7 8
Array b:
7 5 3 1
8 6 4 2
一、解题思路
水题,与矩阵转置算法十分类似,可以在草纸上列出计算即可发现规律,且矩阵已在程序初始化时已经给出。如果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");
}
}
写在最后
各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟! <(^-^)>
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位同志作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知