这是我写的一段c语言程序,做了很久只能做到这样

#include
#include
#include

#define N 8
main()
{
int i,n=0,c=0;
int a[N];
srand(time(NULL));
for(i=0;i<N;i++)
{
a[i]=rand()%2;
printf("%8d%8d\n",i,a[i]);

}
printf("\n");
while(c<8)
{
for(i=1;i<N;i++)
{
if(a[n]!=a[i])
printf("0");
else
printf("1");
n++;
}
{
if(a[7]!=a[0])
printf("0");
else
printf("1");}
printf("\n");
c++;
}

system("pause");
}
能不能把后面输出的01再跟全面一样循环

已经做出来了,谢谢大家支持。。
#include
#include
#include
#include
#define N 8
int main()
{
int i,n;
srand(time(NULL));
int a[N];
int b[N];
for(i=0;i<N;i++)
{
a[i]=rand()%2;

}
for(n=1;n<=8;n++)
{
printf("第%d次排列: \n", n);
for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}
printf("\n");
for (i=0;i<N;i++)
{
if(a[i]+a[(i+1)%N]==1)
{
b[i]=0;
}
else
{
b[i] = 1;
}
}
memcpy(a,b,sizeof(int)*N);
}
system("pause");
}

在if(a[7]!=a[0])上面那个“{”是什么意思呢?

主要题目是这样的:第一次摆设:从围棋子中任意拿来黑白两种颜色的棋子共8个,排成一个圆圈,不妨称为第1圈;第二次摆设:在第一圈两颗颜色相同的棋子中间放一颗黑色棋子,在两颗颜色不同的棋子中间放一颗白色棋子,放完后撤掉原来第一次摆设所放的棋子,新排成圆圈陈为第2圈;......重复上述过程,问第8圈的棋子是什么颜色?

能不能把想要问的问题描述得清楚一点?
如果你是想把后面的这一段循环

 {
if(a[7]!=a[0])
printf("0");
else
printf("1");}
printf("\n");
c++;
}

直接在前面加一个for语句就可以了

for(i=0;i<N;i++){
if(a[7]!=a[0])
printf("0");
else
printf("1");}
printf("\n");
c++;
} 

再声明一个数组 int b[N],和一个变量 int x
while(c<8)
{
for(i=1;i<N;i++)
{
if(a[n]!=a[i])
x=0;
printf("0");
else
x=1;
printf("1");
n++;
b[i]=x;
}
{
if(a[7]!=a[0])
printf("0");x=0;
else
printf("1");x=1;
b[7]=x;
}
printf("\n");
c++;
a=b;
}


你这是要做什么,?没怎么看懂。。