初学编程就搞这么复杂的问题啊,我个人觉得这个问题挺复杂的,献丑一下了,坐等高手(我写的这个代码很耗时)。PS:刚看到你说没高手,其实论坛上高手很多
#include <stdio.h>
#include<math.h>
void main()
{
int i=0,j=0,k=0,l=0,m=0,n=0,o=0,a,a1,a2,a3,b,b1,b2,b3,c,c1,c2,c3,d,d1,d2,d3,e,e1,e2,e3,f,f1,f2,f3,g,g1,g2,g3,n1,n2,n3,n4,n5,n6,n7,flag,z;
int aaa[50],bbb[50],ccc[50],ddd[50],eee[50],fff[50],ggg[50];
int p,q,r,s,t,u,v;
char cc,a11[100],a22[100],a33[100],a44[100],a55[100],a66[100],a77[100];
cc=getchar();
while(cc!='\n')
{
if(cc!=' ')
{a11[i]=cc;i++;}
cc=getchar();
}
cc=getchar();
while(cc!='\n')
{
if(cc!=' ')
{a22[j]=cc;j++;}
cc=getchar();
}
cc=getchar();
while(cc!='\n')
{
if(cc!=' ')
{a33[k]=cc;k++;}
cc=getchar();
}
cc=getchar();
while(cc!='\n')
{
if(cc!=' ')
{a44[l]=cc;l++;}
cc=getchar();
}
cc=getchar();
while(cc!='\n')
{
if(cc!=' ')
{a55[m]=cc;m++;}
cc=getchar();
}
cc=getchar();
while(cc!='\n')
{
if(cc!=' ')
{a66[n]=cc;n++;}
cc=getchar();
}
cc=getchar();
while(cc!='\n')
{
if(cc!=' ')
{a77[o]=cc;o++;}
cc=getchar();
}
//数列的输入完毕
for(n1=0;n1<=3;n1++)
for(n2=0;n2<=3;n2++)
for(n3=0;n3<=3;n3++)
for(n4=0;n4<=3;n4++)
for(n5=0;n5<=3;n5++)
for(n6=0;n6<=3;n6++)
for(n7=0;n7<=1;n7++)
if((n1+n2+n3+n4+n5+n6+n7)==6)
{
flag=0;
if(n1==0)
flag++;
if(n2==0)
flag++;
if(n3==0)
flag++;
if(n4==0)
flag++;
if(n5==0)
flag++;
if(n6==0)
flag++;
if(flag>0&&flag<=4)
{
if(n1<=i&&n2<=j&&n3<=k&&n4<=l&&n5<=m&&n6<=n&&n7<=o)
for(a=0;a<=(pow(2,i)-1);a++)
for(b=0;b<=(pow(2,j)-1);b++)
for(c=0;c<=(pow(2,k)-1);c++)
for(d=0;d<=(pow(2,l)-1);d++)
for(e=0;e<=(pow(2,m)-1);e++)
for(f=0;f<=(pow(2,n)-1);f++)
for(g=0;g<=(pow(2,o)-1);g++)
{
a3=0;b3=0;c3=0;d3=0;e3=0;f3=0;g3=0;
p=0;q=0;r=0;s=0;t=0;u=0;v=0;
a1=a%2;a2=a/2;
aaa[p]=a1;
p++;
if(a1==1)
a3++;
while(a2!=0)
{a1=a2%2;a2=a2/2;aaa[p]=a1;p++;
if(a1==1)
a3++;
}
b1=b%2;b2=b/2;
bbb[q]=b1;
q++;
if(b1==1)
b3++;
while(b2!=0)
{b1=b2%2;b2=b2/2;bbb[q]=b1;q++;
if(b1==1)
b3++;
}
c1=c%2;c2=c/2;
ccc[r]=c1;
r++;
if(c1==1)
c3++;
while(c2!=0)
{c1=c2%2;c2=c2/2;ccc[r]=c1;r++;
if(c1==1)
c3++;
}
d1=d%2;d2=d/2;
ddd[s]=d1;
s++;
if(d1==1)
d3++;
while(d2!=0)
{d1=d2%2;d2=d2/2;ddd[s]=d1;s++;
if(d1==1)
d3++;
}
e1=e%2;e2=e/2;
eee[t]=e1;
t++;
if(e1==1)
e3++;
while(e2!=0)
{e1=e2%2;e2=e2/2;eee[t]=e1;t++;
if(e1==1)
e3++;
}
f1=f%2;f2=f/2;
fff[u]=f1;
u++;
if(f1==1)
f3++;
while(f2!=0)
{f1=f2%2;f2=f2/2;fff[u]=f1;u++;
if(f1==1)
f3++;
}
g1=g%2;g2=g/2;
ggg[v]=g1;
v++;
if(g1==1)
g3++;
while(g2!=0)
{g1=g2%2;g2=g2/2;ggg[v]=g1;v++;
if(g1==1)
g3++;
}
if(a3==n1&&b3==n2&&c3==n3&&d3==n4&&e3==n5&&f3==n6&&g3==n7)
{
for(z=0;z<=50;z++)
if(aaa[z]==1)
{printf("%c ",a11[z]);aaa[z]=0;}
for(z=0;z<=50;z++)
if(bbb[z]==1)
{printf("%c ",a22[z]);bbb[z]=0;}
for(z=0;z<=50;z++)
if(ccc[z]==1)
{printf("%c ",a33[z]);ccc[z]=0;}
for(z=0;z<=50;z++)
if(ddd[z]==1)
{printf("%c ",a44[z]);ddd[z]=0;}
for(z=0;z<=50;z++)
if(eee[z]==1)
{printf("%c ",a55[z]);eee[z]=0;}
for(z=0;z<=50;z++)
if(fff[z]==1)
{printf("%c ",a66[z]);fff[z]=0;}
for(z=0;z<=50;z++)
if(ggg[z]==1)
{printf("%c ",a77[z]);ggg[z]=0;}
printf("\n");
}
}
}
}
}
[
本帖最后由 菜鸟一支 于 2013-6-5 14:57 编辑 ]