递归算法,地址:http://acm.pku.edu.cn/JudgeOnline/problem?id=2245

#include <stdio.h>

int num[15];

int p[15];

int n;

void print ( int no, int s, int offset )
{

    
if ( no == 6 )
    
{
        
for ( int i=0; i<no; i++ )
        
{
            printf ( 
"%d ", p[i] );
        }

        printf ( 
"\n" );
        
return;
    }

    
for ( int i=s; i<=s+offset && i<n; i++ )
    
{
        p[no] 
= num[i];
        print ( no
+1, i+1, offset );
    }

}


int main ()
{

    
while ( scanf ( "%d"&n ) != EOF && n )
    
{
        
for ( int i=0; i<n; i++ )
        
{
            scanf ( 
"%d"&num[i] );
        }


        print ( 
00, n-6 );
        printf ( 
"\n" );
    }

    
return 0;
}