
Untitled
By: a guest on
May 2nd, 2012 | syntax:
C | size: 2.31 KB | hits: 34 | expires: Never
#include <stdio.h>
#include "simpio.h"
#include "genlib.h"
#define size 100
bool initArray(bool a[size][size]);
bool getshape(bool a[size][size]);
void fill(int x, int y, bool a[size][size]);
void printarray(bool a[size][size]);
main()
{
int x, y;
char i;
bool a[size][size];
initArray(a);
getshape(a);
printf("Enter the coordinates of the point the shape should be filled.\n");
printf("x=n\n");
x=GetInteger();
printf("y=\n");
y=GetInteger();
fill(x,y,a);
printarray(a);
printf("Scroll up to view your filled shape\n");
getchar();
}
bool initArray(bool a[size][size])
{
int i, j;
for(i=0;i<100;i++)
{
for(j=0;j<100;j++)
{
a[i][j]=FALSE;
}
}
}
bool getshape(bool a[size][size])
{
int i, j, k;
bool flag;
char ch;
ch=1;
printf("Enter your shape. When you are finished, type 'E'. \n");
for(i=0;i<100;i++)
{
flag=TRUE;
for(j=0;ch!=10;j++)
{
ch=getchar();
if(ch==69)
{
return a;
}
if(ch!=32) a[i][j]=TRUE;
}
ch=1;
}
}
void fill(int x, int y, bool a[size][size])
{
if(a[y][x]!=TRUE) a[y][x]=TRUE;
if(a[y][x-1]!=TRUE) fill(x-1,y,a);
if(a[y-1][x]!=TRUE) fill(x,y-1,a);
if(a[y][x+1]!=TRUE) fill(x+1,y,a);
if(a[y+1][x]!=TRUE) fill(x,y+1,a);
}
void printarray(bool a[size][size])
{
int i, j;
printf("\n\n\n");
for(i=0;i<100;i++)
{
for(j=0;j<100;j++)
{
if(a[i][j]==FALSE) printf(" ");
if(a[i][j]==TRUE) printf("*");
}
printf("\n");
}
}