计算机图形学中的一个小程序,想请问一上,为什么小弟我那样写就错了

计算机图形学中的一个小程序,想请教一下,为什么我那样写就错了?

#include "graphics.h "
#include "conio.h"
void main()
{  int gdriver=DETECT,gmode;          
                                  /*自动搜索显示器类型和显示模式*/
  int x,y;
  initgraph(&gdriver,&gmode," D:\\TC ");   
  cleardevice();     /*清除图形屏幕*/
  moveto(100,40);
    linerel(40,0);  /*从当前坐标以相对增量方式画直线*/
  x=getx();         //   这里为什么要多用个X,Y变量? 写成我那样怎么就不行?见我下面的程序
  y=gety();       
  moveto(x,y+20);
  linerel(-40,0);
  moverel(0,20);
  linerel(40,0);
  moverel(-20,0);
  linerel(0,-40);
  getch();          //等待按一键结束 
  closegraph();
}        
-----------
其他都不变,就是将定义的X,Y变量去掉,
---------
# include "graphics.h"
# include "conio.h"
void main ()
{
    int gdriver = DETECT,gmode;
initgraph(&gdriver ,&gmode,"D:\\TC");
cleardevice();
moveto (100,40);
        linerel (40,0);
moverel (0,20);
linerel (40,0);
moveto (0,20);
linerel (40,0);
moveto (-20,0);
linerel (0,-40);
getch();
closegraph();
}                

------解决方案--------------------
  linerel(-40,0);

  linerel(40,0);
不是一回事。