#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
int a,b,n,x,y,i,x1,y1;
double F,m;
a=0;b=0;n=0;x=0;y=0;m=0;F=0;x1=0;y1=0;
printf("输入起点x0坐标:\n");
scanf("%d",&x);
printf("输入起点y0坐标:\n");
scanf("%d",&y);
printf("输入终点xe坐标:\n");
scanf("%d",&x1);
printf("输入终点ye坐标:\n");
scanf("%d",&y1);
a=x;b=y;
n=(x1-x)+(y1-y);
for(i=1;i<=n;i++)
{
if(F>=0)
{a=a+1;}
else
{b=b+1;}
printf("(%d,%d)\n",a,b);
F=b*x1-b*x+y*a-y*x1+y1*x-y1*a;
}
printf("总步数:%d\nx方向%d步\ny方向%d步\n",n,x1-x,y1-y);
return 0;
}
其他的象限搞不明白,还有这个如果斜率是负数也不能判定