用C语言从键盘输入任意一个非空集合,求集合的幂集。这是离散数学
解答如下
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 5
void fun(char *arr, int len, int index, char *res, int resi)
{
if(len == 0 || index >= strlen(arr) || resi == strlen(arr)-1)
{
if(res[0] != 0)
puts(res);
return ;
}
else
{
res[resi] = arr[index];
if(index == strlen(arr)-1 && len == 1)
puts(res);
for(int i=index+1; i<strlen(arr); i++)
{
if(len-1 == 0) i=strlen(arr);
fun(arr,len-1,i,res,resi+1);
}
}
}
int main()
{
char arr[N+1] = "abcde";
puts("NULL");
for(int i=1; i<strlen(arr); i++)
{
for(int j=0; j<strlen(arr)-i+1; j++)
{
char res[N+1]={0};
fun(arr,i,j,res,0);
}
}
return 0;
}