#include #include #include #define MAX_SIZE 1000 void initArray ( char A[][MAX_SIZE], int r ) { int i, j; for (i=0; i<=2*r; ++i) { for (j=0; j<=2*r; ++j) A[i][j] = ' '; A[i][2*r] = '\0'; } } void printArray ( char A[][MAX_SIZE], int r ) { int i, j; for (i=0; i<=2*r; ++i) { for (j=0; j<=2*r; ++j) printf(" %c", A[i][j]); printf("\n"); } } void drawCircle ( char A[][MAX_SIZE], int r, int R ) { int x, y; for (x=0; x<=R; ++x) { y = round(sqrt(R*R - x*x)); A[r+x][r+y] = '@'; A[r+x][r-y] = '@'; A[r-x][r+y] = '@'; A[r-x][r-y] = '@'; A[r+y][r+x] = '@'; A[r+y][r-x] = '@'; A[r-y][r+x] = '@'; A[r-y][r-x] = '@'; } } void refineCircle ( char A[][MAX_SIZE], int r ) { int x, y; for (x=1; x<2*r; ++x) { for (y=1; y<2*r; ++y) { if ((A[x][y] == ' ') && (A[x][y-1] != ' ') && (A[x][y+1] != ' ') && (A[x+1][y] != ' ') && (A[x-1][y] != ' ')) { A[x][y] = '@'; } } } } int main () { int r, t, i; char A[MAX_SIZE][MAX_SIZE]; printf("Enter radius (r): "); scanf("%d", &r); printf("Enter thickness (t): "); scanf("%d", &t); initArray(A,r); drawCircle(A,r,r); printf("\n+++ Circle of thickness 1:\n"); printArray(A,r); for (i=1; i