题目链接 #150. 矩阵旋转
设计思路
关于矩阵的问题必然会牵扯到二维数组的问题,关键在于旋转,其实不管旋转方式怎么样,它的变换思路都是一致的,只是下标的等价关系不同,下面我们来进行解析。
代码语言:javascript复制#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int n, m;
int arr[200][200];
int brr[200][200];//用于存储变换后的矩阵
while (scanf("%d %d", &n, &m) != EOF)
{
for (int i = 0; i < n; i )
{
for (int j = 0; j < m; j )
{
scanf("%d", &arr[i][j]);
}
}
for (int i = 0; i < m; i )
{
for (int j = 0; j < n; j )
{
brr[i][j] = arr[n - j - 1][i];
}
}
for (int i = 0; i < m; i )
{
for (int j = 0; j < n; j )
{
printf("%d", brr[i][j]);
if (j != n - 1)
{
printf(" ");
}
}
printf("n");
}
break;
}
return 0;
}
这里如果单纯的进行交换赋值的话,考虑到两个数组的不一致性,会很麻烦,所以用一个空数组进存储,注意旋转后输出的限制条件。
输出结果