例如,如下的方陣:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
順時(shí)針旋轉(zhuǎn),卻是如下結(jié)果:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
for(int i=0; i<rank * rank; i++)
{
// 以原第一行進(jìn)行分析 一行數(shù)變?yōu)橥涣?nbsp; 以原第一列為例,變?yōu)橥恍小?nbsp; (i%rank)*rank使列變?yōu)樾?nbsp; rank-(i/rank)-1) 使行變?yōu)榱?BR> y[(i%rank)*rank+(rank-(i/rank)-1) ] = x[i];
}
for(i=0; i<rank*rank; i++)
{
x[i] = y[i];
}
free(y);
}
int main(int argc, char* argv[])
{
int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
int rank = 4;
rotate(&x[0][0], rank);
for(int i=0; i<rank; i++)
{
for(int j=0; j<rank; j++)
{
printf("%4d", x[i][j]);
}
printf("/n");
}
return 0;
}
新聞熱點(diǎn)
疑難解答
圖片精選