上代码:
#include<stdio.h>
int main()
{
int N;
scanf("%d",&N);
int v,k;
int sum=0;//一共输入了多少数字
int shu[4001]={0};
int i;
for(i=1;sum<N*N;i++)
{
scanf("%d",&v);
sum+=v;//累加总数,不要超过N*N个数
shu[i]=v;//记录每组数字有多少个
}
int p;
for(k=1,p=0;k<=i;k++)
{
if(k%2!=0)//数组从第二项开始(第一项不管它),如果编号是奇数,则为标0的
{
for(int x=0;x<shu[k];x++)
{
printf("0");
p++;//记录这一行输出到哪了,计数到换行处
if(p==N)
{
printf("\n");//该换行了
p=0;//别忘了把p更新为0,下一行要重新开始计数
}
}
}
else
{
for(int y=0;y<shu[k];y++)//偶数为1,其余同理
{
printf("1");
p++;
if(p==N)
{
printf("\n");
p=0;
}
}
}
}
return 0;
}
结果: