晕死,排列,真不知道哪里错了啊!
我已经N次运行N次修改了,没有语法错误,但是却也得不到正确结果,我想实现1---5中3.4不相邻的全排列,输出所有排列和排列个数,为什么是120而不是正确结果72呢好像后面的if就没起作用,仔细想了想好像根本没有必要创建数组啊,初学C,别笑话 啊int main()
{int a,b,c,d,e,f,n=0;
int qa[5]={0,0,0,0,0};
for(a=1;a<6;a++)
for(b=1;b<6;b++)
for(c=1;c<6;c++)
for(d=1;d<6;d++)
for(e=1;e<6;e++)
{if(a==b||a==c||a==d||a==e||b==c||
b==d||b==e||c==d||c==e||d==e)
continue;
qa[0]=a;qa[1]=b;qa[2]=c;qa[3]=d;qa[4]=e;
if(((qa[0]=3)&(qa[1]=4))||((qa[1]=3)&(qa[2]=4))||((qa[2]=3)&(qa[3]=4))||((qa[3]=3)&(qa[4]=4)))break;
if(((qa[0]=4)&(qa[1]=3))||((qa[1]=4)&(qa[2]=3))||((qa[2]=4)&(qa[3]=3))||((qa[3]=4)&(qa[4]=3)))break;
n++;
printf("{%d,%d,%d,%d,%d}",a,b,c,d,e);
}
printf("满足条件的数列共有%d个,分别如上:\n",n);
}