标签:
抽签
....
#include <stdio.h>  
#define N 6  
#define M 5  
#define BUF 1024  
  
void f(int a[], int k, int m, char b[])  
{  
    int i,j;  
      
    if(k==N){   
        b[M] = 0;  
        if(m==0) printf("%s\n",b);  
        return;  
    }  
      
    for(i=0; i<=a[k]; i++){  
        for(j=0; j<i; j++) b[M-m+j] = k+'A';  
        _____________;  //填空位置  
    }  
}  
int main()  
{     
    int  a[N] = {4,2,2,1,1,3};  
    char b[BUF];  
    f(a,0,M,b);  
    return 0;  
}  答案 f(a,k+1,m-i,b),或者f(a,k+1,m-j,b)也可以
#include <stdio.h>  
#define N 6  
#define M 5  
#define BUF 1024  
  
void f(int a[], int k, int m, char b[])  
{  
    int i,j;  
      
    if(k==N){   
        b[M] = 0;  
        if(m==0) printf("%s\n",b);  
        return;  
    }  
      
    for(i=0; i<=a[k]; i++){  
        for(j=0; j<i; j++) b[M-m+j] = k+'A';  
     f(a,k+1,m-j,b);  
    }  
}  
int main()  
{     
    int  a[N] = {4,2,2,1,1,3};  
    char b[BUF];  
    f(a,0,M,b);  
    return 0;  
}#include <stdio.h>  
#define N 6  
#define M 5  
#define BUF 1024  
  
void f(int a[], int k, int m, char b[])  
{  
    int i,j;  
      
    if(k==N){   
        b[M] = 0;  
        if(m==0) printf("%s\n",b);  
        return;  
    }  
      
    for(i=0; i<=a[k]; i++){  
        for(j=0; j<i; j++) b[M-m+j] = k+'A';  
     f(a,k+1,m-i,b);  
    }  
}  
int main()  
{     
    int  a[N] = {4,2,2,1,1,3};  
    char b[BUF];  
    f(a,0,M,b);  
    return 0;  
}
标签:
原文地址:http://blog.csdn.net/qq_34124512/article/details/51340628