答案輸不出 我也不知道原因
我的程序:
#include
#include
void sort(int a[500], int b[500],int n)//換一次
{
int i, j = 0, flag = 1;
for (i = 0; i < n; i++)
{
if (i % 2 == 0)
{ b[j++] = a[n / 2 + i/2]; }
else
{ b[j++] = a[i/2]; }
}
}
void change(int a[500], int b[500],int n)
{
int i; for (i = 0; i < n; i++)
{ a[i] = b[i]; b[i] = 0; }
}
int main()
{
int i, n,a[500],b[500],flag=1,c=0;
scanf("%d", &n);
for (i = 0; i < 2 * n; i++)
{ a[i] = i + 1; b[i] = 0; }
flag = 1;
while(flag==1)
{ sort(a, b, 2 * n);
flag = 0; c++;
for (i = 0; i < 2 * n; i++) //若兩個數組都不相同 那麼flag=1 繼續循環
{ if (a[i] != b[i])
{ flag = 1;
change(a, b, 2 * n);
}
}
}
printf("經%d次洗牌回到初始位置\n", c);
return 0;}