Dibuja el círculo de Bresenham

c:
#include<iostream.h>
 #include<graphics.h>
 #include<math.h>
 #include<conio.h>
 #include<stdio.h>
 #include<process.h>
 #include <stdlib.h>
 #include<dos.h>

  int convertx(int k)
     {
       return(320+k);
     }

  int converty(int k)
    {
      return(240-k);
    }

  int convertxc(int k)
      {
        return(320+k);
      }

  int convertyc(int k)
      {
         return(240-k);
      }

   void axis();
   int circlemid(int,int,int);
   void plotpoint();

   void main()
   {
      int gdriver=DETECT,gmode;
      initgraph(&#038;gdriver,&#038;gmode,"c:\\tc1\\bgi");
      float xc,yc;
      float r;
      while(1)
       {
         cout<<"\n Enter The Center Of The Circle : ";
         cin>>xc>>yc;
         cout<<"\n Enter the Radius Of The Circle: ";
         cin>>r;
         circlemid(xc,yc,r);
         cout<<"\n Do you want to continue ('y' or 'Y') : ";
         char c;
         c=getch();
         if(c=='y' || c=='Y')
         break;
       }
    }

    void axis()
         {
          setcolor(1);
          line(320,0,320,480);
          line(0,240,640,240);
         }

    void plotpoint(int xc,int yc,int x1,int y1)
         {
           delay(50);
           putpixel(convertxc(xc)+x1,convertyc(yc)+y1,1);
           putpixel(convertxc(xc)-x1,convertyc(yc)+y1,2);
           putpixel(convertxc(xc)+x1,convertyc(yc)-y1,3);
           putpixel(convertxc(xc)-x1,convertyc(yc)-y1,4);

           putpixel(convertxc(xc)+y1,convertyc(yc)+x1,5);
           putpixel(convertxc(xc)-y1,convertyc(yc)+x1,6);
           putpixel(convertxc(xc)+y1,convertyc(yc)-x1,7);
           putpixel(convertxc(xc)-y1,convertyc(yc)-x1,8);
           }

    int circlemid(int xc,int yc,int r)
          {
             int x,y;
             x=0;
             y=r;
             axis();
             putpixel(convertxc(xc),convertyc(yc),5);
             plotpoint(xc,yc,x,y);
             double p=1-r;

             while(x<y)
              {
               if(p<0)
               {
                 x=x+1;
                 p=p+2*x+1;
               }
               else
               {
                x=x+1;
                y=y-1;
                p=p+2*(x-y)+1;
               }
               plotpoint(xc,yc,x,y);
             }
            return(0);
           }
¿Ya le viste algún error? Dejanos tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress elimina los tags HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios.

Otro punto antes de comentar, Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

De esta manera el código sale coloreado.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el último párrafo.

Para poner los símbolos de las librerías sin que desaparezcan, debes escribir los símbolos de mayor > y menor qué < con su entidad HTML correspondiente, así como el símbolo de &

Mis Algoritmos se reserva el derecho de alterar, publicar o no los comentarios así como cambiar estas reglas de uso.

Si estas de acuerdo, adelante puedes comentar :)

P.D. No le hago tareas a nadie, mejor hagan la mía :P