求高手解这个程序的运行问题
我是一个机械系的学生,最近在做一个数控技术插补原理的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); } } }但这时程序运行出现了问题如图
想不通为什么会出现这样的情况,希望得到高手指点~~~本人先谢过了