算法训练 斜率计算

输入两个点的坐标,即p1 = (x1, y1)和p2=(x2, y2),求过这两个点的直线的斜率。如果斜率为无穷大输出“INF”。

样例输入

1 2
2 4

样例输出

2

样例输入

1 2
1 4

样例输出

INF

样例输入

1 2
3 2

样例输出

0

#include <stdio.h>
typedef
	struct
	{
		int x;
		int y;
	}dian;
void  shuchu( dian , dian );
void q_ys( int ,int );

int main(void)
{
	dian zb1;
	dian zb2;
	scanf("%d%d",&zb1.x,&zb1.y);
	scanf("%d%d",&zb2.x,&zb2.y); 
	shuchu(zb1,zb2);
    return 0;
}
void  shuchu( dian zb1, dian zb2)
{
	if( zb1.x==zb2.x)
	{
		printf("INF\n");
		return ;
	}
	if(zb1.y==zb2.y)
	{
		printf("0\n");
		return ; 
	}
	int fz=zb2.y-zb1.y;
	int fm=zb2.x-zb1.x;
	q_ys( fz ,fm );
}
void q_ys( int fz , int fm )
{
	int ys;
	int s1=fm,s2=fz;
	while((ys=s1%s2)!=0)
	{
		s1=s2;
		s2=ys;
	}
	if(s2==fm||fm/s2==1)
	{
		printf("%d\n",fz/fm);
		return ;
	}
	printf("%d/%d\n",fz/s2,fm/s2);	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值