二维数组排列-每个元素遍历所有数组元素位.
/*二维数组中每个元素在数组所有位置走一遍*/#include <stdio.h>
#define NUM 12 /*数组元素个数*/
#define COLCOUNT 4 /*列数*/
main()
{
int a[][COLCOUNT]={1,2,3,4,5,6,7,8,9,10,11,12},i,j,row1,row2,col1,col2,mid;
for(j=1;j<NUM;j++)
{
for(i=1;i<NUM;i++)
{
if((col1=i%COLCOUNT)==0)
{
col1=COLCOUNT;
row1=i/COLCOUNT-1;
}
else
row1=i/COLCOUNT;
if((col2=(i+1)%COLCOUNT)==0)
{
col2=COLCOUNT;
row2=(i+1)/COLCOUNT-1;
}
else
row2=(i+1)/COLCOUNT;
mid=a[row1][col1-1];
a[row1][col1-1]=a[row2][col2-1];
a[row2][col2-1]=mid;
printf("%4d",a[row1][col1-1]);
if(col1=i%COLCOUNT==0)
printf("\n");
}
printf("%4d",a[row2][col2-1]);
printf("\n");
}
getch();
}
[ 本帖最后由 凌彬严 于 2009-8-18 14:00 编辑 ]