c언어

#include
char first[100][100] = { 0, };
char second[100][100] = { 0, };
void find_S(int, int);
int change(int, int, char);
int count(int, int);
int main(void)
{
FILE* fp = NULL;
int n = 0, number = 0, result = 0;
if((fp = fopen("sample_input.txt","r"))==NULL)
{
fprintf(stderr,"No file exist!\n");
return -1;
}
fscanf(fp,"%d",&n);
while(n-->0)
{
int rows = 0, columns = 0, zero = 0;
fscanf(fp, "%d", &rows);
fscanf(fp, "%d", &columns);
find_S(rows, columns);
for (int i = 0; i < rows; i++)
{
fscanf(fp, "%s", &first[i]);
} for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
switch (first[i][j])
{
case 'A':
change(i, j, 'A');
break;
case 'B':
change(i, j, 'B');
break;
case 'C':
change(i, j, 'C');
break;
case 'X':
second[i][j] = 1;
break;
}
}
}
zero = count(rows, columns);
printf("%d\n", zero);
}
fclose(fp);
return 0;
}
void find_S(int a, int b)
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
{
second[i][j] = 0;
}
}
}
int change(int i, int j,char c)
{
int range = 0;
switch (c)
{
case 'A':
range = 3;
break;
case 'B':
range = 2; break;
case 'C':
range = 1; break;
}
for (int t = i - range; t <= i + range; t++)
{
second[t][j] = 1;
}
for (int t = j - range; t <= j + range; t++)
{
second[i][t] = 1;
}
}
int count(int a, int b)
{
int zero = 0;
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
{
if (second[i][j] == 0)
zero++;
}
}
return zero;
}

lobster