#include<stdio.h>
int main(){
int a[8][8]={{0,0,2,0,2,2,0,2},{1,2,3,2,3,0,1,0},{2,1,0,1,0,3,2,3},{3,3,1,3,1,1,3,1},{0,2,2,2,2,0,0,0},{1,0,3,0,3,2,1,2},{2,3,0,3,0,1,2,1},{3,1,1,1,1,3,3,3}};
int b[1000],c[500],d[500],e[500];
int i=0,j=0,m,n,z=1;//z表示空时网格第几行
// printf("请输入2天线8状态的网格码:\n");
// for(i=0;i<8;i++)
// for(j=0;j<8;j++){
// scanf("%d",&a[i][j]);
// }
printf("请输入序列对数:\n");
scanf("%d",&n);
m=n*2;
printf("请输入输入序列:\n");
for(i=0;i<m;i++)
{
scanf("%d",&e[i]);
}
i=0;
while(m>0)
{
b[m-2]=e[i];
b[m-1]=e[i+1];
i=i+2;
m=m-2;
// printf("m=%d\n",m);
}
printf("逆序为:\n");
for(i=0;i<=2*n-1;i++)
{
printf("%d ",b[i]);
}
for(int x=0;x<5;x++)
{
i=b[2*x],j=b[2*x+1];
c[x]=a[z-1][2*(2*i+j)];
d[x]=a[z-1][2*(2*i+j)+1];
if(z%2==0){
z=2*i+j+5;
}
else if(z%2==1){
z=2*i+j+1;
}
}
printf("\n第1根天线的输出:\n");
for(i=0;i<n;i++)
printf("%d ",c[i]);
printf("\n");
printf("第2根天线的输出:\n");
for(i=0;i<n;i++)
printf("%d ",d[i]);
printf("\n");
}
程序可以通过更改实现自行输入网格码