新手求助,看了半天实在找不到原因,谢谢
原始题目:有abcde,5个不同的球,准备分给甲乙丙丁戊5人,已知甲不要a球,乙不要b球,丙不要c球,问共有多少种分法。我的问题: 怀疑是continue的用法不对,程序陷入了死循环,但是我不知道为什么会陷入死循环。想请教大神告诉我原因,谢谢。(解题不是目的,参考书上有答案,主要是想知道为什么自己编的这段程序会死循环,所以不要告诉我其他的写法,只是想知道我这么写的问题所在,谢谢了)
程序代码:#include<stdio.h>
void main()
{
int a,b,c,d,e,i,j;//abcde 即代表甲乙丙丁戊; abcde 五个球用01234代表
int x[10];
int n=1;
for(i=0;i<10;i++)
x[i]=1;
for(a=0;a<5;a++)
{
if(a=0) continue;
x[a]=0; //防止重复
for(b=0;b<5;b++)
{
if(b=1) continue;
if(x[b])
{
x[b]=0; //防止重复
for(c=0;c<5;c++)
{
if(c=2) continue;
if(x[c])
{
x[c]=0; //防止重复
for(d=0;d<5;d++)
{
if(x[d])
{
x[d]=0; //防止重复
for(e=0;e<5;e++)
n++;
}
x[d]=1; //未找到解,重新赋1,下同
}
}
x[c]=1;
}
}
x[b]=1;
}
x[a]=1;
}
printf("n=%d\n",n);
}[此贴子已经被作者于2018-11-16 17:53编辑过]









