#include <stdio.h> int main() { int X[4] = {}, i, count = 0; int n = 4; for(X[4]=0;X[4]<2;X[4]++) for(X[3]=0;X[3]<2;X[3]++) for(X[2]=0;X[2]<2;X[2]++) for(X[1]=0;X[1]<2;X[1]++) { printf("{"); for(i=1;i<=n;i++) if(X[i]) { printf("%d",i); } printf("} ");//换行一次表示一个子集打印结束,n个元素表示子集有2^n个子集 ++count; } printf("共%d个子集", count); return 0; }========================================Talk is cheap, show me the code=======================================