現状のソースコードは以下です。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define NA 4 /* NA=3,11禁止 */
int main(void)
{
int NB = NA - 1; /* NB = 2 */
int an = pow(2,NB); /* an = 4 */
int NC = an / 2; /* NC = 2 */
int a[an][an];
int l,k,m;
for(l=0;l<an;l++) for(k=0;k<an;k++) a[l][k]=0;
k = 0;
for(l=0;l<NC;l++){
a[l][k]=1;
a[l][k+1]=1;
k=k+2;
}
k = 0;
for(l=NC;l<an;l++){
a[l][k]=1;
a[l][k+1]=1;
k=k+2;
}
printf("a[%d][%d]={",an,an);
for(l=0;l<an;l++){
printf("{");
for(k=0;k<an;k++){
printf("%d",a[l][k]);
if(k!=an-1){
printf(",");
}else{
printf("}");
if(l!=an-1) printf(",");
}
}
if(l!=an-1) printf("\n ");
}
printf("};\n");
}
a[8][8]={{1,1,0,0,0,0,0,0},
{0,0,1,1,0,0,0,0},
{0,0,0,0,1,1,0,0},
{0,0,0,0,0,0,1,1},
{1,1,0,0,0,0,0,0},
{0,0,1,1,0,0,0,0},
{0,0,0,0,1,1,0,0},
{0,0,0,0,0,0,1,1}};
この場合は、「011」「110」「111」が該当する状態なので、「011」→「3」、「110」→「6」、「111」→「7」から、上記から除外するのはa[1][3],a[3][6],a[3][7],a[5][3],a[6][4],a[6][5],a[7][6],a[7][7]となり下記のようにしたいということです。 どうすればいいでしょうか。