读书人

矩阵旋转 疑惑。该如何解决

发布时间: 2012-04-01 17:23:46 作者: rapoo

矩阵旋转 疑惑。。。
#include <stdio.h>
#include <stdlib.h>

int s[2][3][3];
int c=1,i,a=0,b=1,m,h1[3],j;
main()
{
for(i=0;i <=2;i++)
for(j=0;j <=2;j++)
s[0][i][j]=c++;

for(i=0;i <=4;i++)
{
h1[1]=h1[2]=h1[0]=2;
for(j=0;j <=2;j++)
{
for(m=0;m <=2;m++)
{
printf( "%d\t ",s[a][j][m]);
s[b][m][h1[m]]=s[a][j][m];
h1[m]-=1;
}
printf( "\n ");
}

a=!a;
b=!b;
printf( "\n ");
}

system( "pause ");
}
矩阵旋转:
m=1时,我觉得这句 s[b][m][h1[m]]=s[a][j][m]; 不大理解,但结果输出正确,
h1[m]-=1;这句放到数组中,我觉得数据也不对。。。望大虾解释下。。

[解决办法]
矩阵算法写这么乱怎么看啊?怎么还有4维数组?
程序尽量简化,否则不但你看不懂,而且还容易错
[解决办法]
二维数组Amn可视为由m个行向量组成的向量,或由n个列向量组成的向量。
三维数组Amnp可视为以二维数组为数据元素的向量。四维数组可视为以三维数组为数据元素的向量……
三维数组中的每个元素aijk都属于三个向量。四维数组中的每个元素都属于四个向量……

[解决办法]
s[b][m][h1[m]]
这种的还是第一次见到~

MARK & 学习~
[解决办法]
取那里的值..应该可以吧...
自己没写过,但见过..
[解决办法]
写复杂了
int s1[3][3];
int s2[3][3];
这样写就好理解了

读书人网 >C语言

热点推荐