或者可以试试这个~感觉这个更像二叉树的遍历输出路径状态~
 程序代码:
程序代码:
	
	
			 程序代码:
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 10
typedef struct Array
{
    int data;
    unsigned visit;
}Array;
void input(Array* arr[] ,size_t len);
void print(Array* arr[] ,size_t len);
void fun(Array* arr[],size_t deep,size_t len);
void freeArr(Array* arr[],size_t len);
int main( void )
{
   Array* arr[N];
   int m=5;
  
   memset(arr,0,sizeof (arr));
   
   input(arr,m);
   
   fun(arr,0,m);
   
   freeArr(arr,m);
   
    return 0;
}
void input(Array* arr[],size_t len)
{
    size_t i;
    
    if (len>N)
        exit(0);
    
        
    for (i=0;i!=len;++i)
    {
        arr[i]=(Array* )malloc(sizeof (*arr[0]));
        
        if (arr[i]==NULL||!scanf("%d",&arr[i]->data))
            exit(0);
    }
}
void print(Array* arr[],size_t len)
{
        size_t i;
        
        for (i=0;i!=len;++i)
            if (arr[i]->visit)
                printf("%-4d",arr[i]->data);
                
       puts("");
}
void fun(Array* arr[],size_t deep,size_t len)
{
    if (deep==len)
    {
            print(arr,len);
            return ;
    }
     
    arr[deep]->visit=1;
           
    fun(arr,deep+1,len);
    
    arr[deep]->visit=0;
    
    fun(arr,deep+1,len);
    
}
void freeArr(Array* arr[],size_t len)
{
    size_t i;
    
    for (i=0;i!=len;++i)
        if (arr[i]!=NULL)
        {
            free(arr[i]);
            arr[i]=NULL;
        }
}
[此贴子已经被作者于2017-11-19 00:23编辑过]

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]



 
											







 
	    

 
	
 ~
~
 ,这两天没看论坛,结果今天一上来才看见大佬写的代码,实在感动,我先看看~
,这两天没看论坛,结果今天一上来才看见大佬写的代码,实在感动,我先看看~										
					
	