从n个字符中,找出m个排列组合
#include <string.h> #include <stdio.h> #include <stdlib.h> void combine(char *value,char *result,int m) { if(m == 1) { while(*value != '\0') { printf("%s%c\n",result,*value); value++; } } int value_len = strlen(value); int result_len = strlen(result); int i = 0; for(i = 0;i < value_len - m + 1;i++) { result[result_len] = *value; result[result_len + 1] = '\0'; value++; combine(value,result,m - 1); } } int main() { printf("输入字符集:\n"); char value[10]; scanf("%s",value); printf("输入组合的数字:\n"); int m; scanf("%d",&m); char *result = (char *)malloc(m + 1); memset(result,0,m + 1); combine(value,result,m); return 0; }