如何将一个N行N列的二维数组改写成N行1列或者N行2列的数组。
											 程序代码:
程序代码:#include<stdio.h>
#include <stdlib.h>
#define N 13
static void _fun( int,int,int** );
void print(FILE* fp, const int [][N][N] );
int a[1<<N][N][N];
int main( void )
{
   int i,j;
   int* p=NULL;
   unsigned k=1;
   FILE *fp;
    if ((fp = fopen ("D:\\数组13和13.txt", "a+")) == NULL)
    {
        printf("打开文件失败\n");
        exit(1);
    }
  for (i=0;i!=N/2;++i)
        k*=3;
   for (i=0;i!=k;++i)
    {
        p=a[i][1];
        {
            for (j=1;j!=N+1;++j)
                  a[i][0][j-1]=j;      
        }
       _fun(i,-(N/2-1),&p);
       _fun(i,N/2-1-(N+1)%2,&p);
    }
    print(fp, a);
    fclose(fp);
    return 0;
}
static void _fun( int k,int n,int** p )
{
     if (n>0)
        _fun(k/3,n-1,p);
   {
        int i=N+1;       
        while (--i)
        {
              **p=k%3;
              ++*p;
        }
   }
    if (n<0)
        _fun(k/3,n+1,p);
}
void print(FILE* fp, const int a[][N][N] )
{
    size_t i;
    unsigned k=1;
    for (i=0;i!=N/2;++i)
        k*=3;
    for (i=0;i!=k;++i)
    {
        size_t j;
        fprintf(fp,"i = %d\n",i);
        for (j=0;j!=N;++j)
        {
            size_t k;
            for (k=0;k!=N;++k)
                fprintf(fp,"%-4d",a[i][j][k]);
           fprintf(fp,"\n");
        }
        fprintf(fp,"\n");
    }
}这段代码是一个N行N列的二维数组群,我想把它改写成N行1列或者N行2列的数组群,同时还要满足上面这段代码现有的规律,还有就是要用数组来编写,如果不用数组来编写,就没意思了,N如果能达到50, 就更好了。小弟不才,请教各位啦!!

 
											






 
	     
											

 自己去改吧
自己去改吧										
					
	
 
					
				
			
