【发布时间】:2017-11-08 09:14:03
【问题描述】:
程序 - 将矩阵顺时针旋转 90 度。 我是编码的初学者。我在 GeeksforGeeks 上遇到了这个问题。我发现解决方案非常复杂,因此尝试应用我的逻辑。但我不知道我的逻辑是否适合该程序。请指导我。
#include<stdio.h>
int main()
{
int A = 0 , a = 0 , b = 0;
int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
printf("90 Degree rotation: \n");
printf("\n");
for(A = 2; A >= 0; A--)
{
for(a = 0; a < 3 ; a++)
{
for(b = 0; b < 3 ; b++)
{
if(b==A)
printf("%d\t",arr[a][b]);
}
}
printf("\n");
}
}
输入
1 2 3
4 5 6
7 8 9
输出
3 6 9
2 5 8
1 4 7
【问题讨论】:
-
为什么不直接反转 a & b 循环并删除外循环?你有 1 个循环太多。或者直接打印
arr[b][a]。好吧,也许你必须反转一些索引,但不应该超过 2 个循环来做到这一点。 -
关于改进工作代码的问题属于CodeReview。
-
逆时针方向。