描述
所谓的格点——就是平面坐标系中,纵横坐标均为整数的点。
现在问题来了,给你平面上不同的两个格点P1 = (x1,y1)和 P2 = (x2,y2),依次输出在线段P1P2上所有格点的坐标。
#include<stdio.h>
#include<stdlib.h>
int gcd(int a,int b)
{
if(b==0)
return a;
else
return gcd(b,a%b);
}
int main()
{
int N;
scanf("%d",&N);
while(N--)
{
int x1,x2,y1,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
int x,y,z,i,j,temp;
x=x2-x1;
y=y2-y1;
if(x==0)
y=1;
else if(y==0)
x=1;
else
{
z=gcd(abs(x),abs(y));
x=x/z;
y=y/z;
}
while(x1!=x2||y1!=y2)
{
printf("(%d,%d),",x1,y1);
x1=x1+x;
y1=y1+y;
}
printf("(%d,%d)\n",x1,y1);
}
return 0;
}