求高手解这个程序的运行问题
我是一个机械系的学生,最近在做一个数控技术插补原理的C语言程序,插补原理可见http://www.,您可以在http://www.,这个网址下看一下数值的运算。程序如下(本人编写的)
程序代码:#include <stdio.h>
void main()
{
int x,y,z,pj,xh,c,d,e;/*x y为坐标值,z为终点判别 ,pj为偏差计算,xh为序号,c d为起始坐标值(0,0) e 为x y的绝对值之和*/
printf("请输入坐标值(如5 3):");
scanf("%d%d",&x,&y);
e=abs(x)+abs(y);
c=d=0;
printf("%s %s %s %s\n","序号","偏差判别","终点判别","坐标");
if(x>0,y>0)
{
xh=0;
pj=0;
printf("%d %d %d %d,%d\n",xh,pj,e,c,d);
for(z=e-1;z>=0;z--)
{
if(pj>=0)
{c++;
pj=pj-y;}
else
{ d++;
pj=pj+x;}
xh++;
printf("%d %d %d %d,%d\n",xh,pj,z,c,d);
}
}
}
可得下图所以依次类推 可以编写其它象限的程序。程序如下:
程序代码:#include <stdio.h>
void main()
{
int x,y,z,pj,xh,c,d,e;/*x y为坐标值,z为终点判别 ,pj为偏差计算,xh为序号,c d为起始坐标值(0,0) e 为x y的绝对值之和*/
printf("请输入坐标值(如5 3):");
scanf("%d%d",&x,&y);
e=abs(x)+abs(y);
c=d=0;
printf("%s %s %s %s\n","序号","偏差判别","终点判别","坐标");
if(x>0,y>0)
{
xh=0;
pj=0;
printf("%d %d %d %d,%d\n",xh,pj,e,c,d);
for(z=e-1;z>=0;z--)
{
if(pj>=0)
{c++;
pj=pj-y;}
else
{ d++;
pj=pj+x;}
xh++;
printf("%d %d %d %d,%d\n",xh,pj,z,c,d);
}
}
if(x>0,y<0)
{
xh=0;
pj=0;
printf("%d %d %d %d,%d\n",xh,pj,e,c,d);
for(z=e-1;z>=0;z--)
{
if(pj>=0)
{c++;
pj=pj-abs(y);}
else
{ d--;
pj=pj+x;}
xh++;
printf("%d %d %d %d,%d\n",xh,pj,z,c,d);
}
}
if(x<0,y>0)
{
xh=0;
pj=0;
printf("%d %d %d %d,%d\n",xh,pj,e,c,d);
for(z=e-1;z>=0;z--)
{
if(pj>=0)
{ c--;
pj=pj-y;
}
else
{ d++;
pj=pj+abs(x);
}
xh++;
printf("%d %d %d %d,%d\n",xh,pj,z,c,d);
}
}
}
但这时程序运行出现了问题如图想不通为什么会出现这样的情况,希望得到高手指点~~~本人先谢过了









