Code:
#include<stdio.h>
#define N 10
int check(int matrix1[][N+2], int index[][2]);
main()
{
int matrix[N][N]={{0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0}} ;
int i,j;
int bigmatrix[N+2][N+2], index[N][2]={0};
for (i=0;i<N;i++)
for (j=0;j<N;j++)
{
bigmatrix[i+1][j+1]=matrix[i][j];
}
check (bigmatrix,index);
for (i=0;i<N;i++)
for (j=0;j<2;j++)
printf ("%d\n", index[i][j]);
getch();
}
int check(int matrix1[][N+2],int index[][2])
{
int i,j,r,k,flag=1;
for (i=1;i<N;i++)
for (j=1;j<N;j++)
while (matrix1[i][j]==1)
{
if (matrix1[i-1][j] || matrix1[i][j-1]|| matrix1[i+1][j] || matrix1[i][j+1] ||
matrix1[i-1][j-1] || matrix1[i+1][j+1] || matrix1[i-1][j+1] || matrix1[i+1][j-1])
flag=0;
for (r=i+1;r<N;r++)
if (matrix1[r][j]!=0)
flag=0;
goto label ;
for (k=j+1;k<N;k++)
if (matrix1[i][k]!=0)
flag=0;
goto label ;
for (k=j+1,r=i+1;k<N||r<N;r++,k++)
if (matrix1[r][k]!=0)
flag=0;
goto label ;
for (k=j-1,r=i-1;k>0||r<N;r++,k--)
if (matrix1[r][k]!=0)
flag=0;
goto label ;
return flag;
}
label:
if (flag==1)
printf("i=%d, j=%d\n", i-1,j-1);
else
puts ("no match found");
return flag;
}