您的位置:首页 > 其它

二维数组形成zigzag排列顺序

2014-06-04 16:20 302 查看
</pre><pre name="code" class="cpp">#include<iostream>
#include<stdlib.h>
using namespace std;
#define N 8

int main(void)
{
int Z

={0};
int i = 0;
int row = 0,clo = 0;
do                      //先处理边上的行列特殊状况
{

if(0 == ((row + clo) & 0x1 )) //如果行号加列号为偶数 则数组朝右上方走
{
if(0 == row && clo < N-1)
{
Z[row][clo] = i;
i++;
clo++;
}
else if(N-1 == clo)
{
Z[row][clo] = i;
i++;
row++;
}
else
{
Z[row][clo] = i;
i++;
row--;
clo++;
}
}
else              //如果行号加列号为奇数 则数组朝左下方走
{
if(0 == clo && row < N-1)
{
Z[row][clo] = i;
i++;
row++;
}

else if(N-1 == row)
{
Z[row][clo] = i;
i++;
clo++;
}
else
{
Z[row][clo] = i;
i++;
row++;
clo--;
}
}
}while(i<N*N);
for(int j=0;j<N;j++)
{
for(int k=0;k<N;k++)
cout << Z[j][k] << "\t";
cout<<endl;
}
cout << endl;
system("pause");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐