用C语言编写 在平面上,穿过两个点(x1,y1)和(x2,y2)的直线是由下面的方程定义的:

ax+by=c(其中,a=y2—y1,b=x1-x2,c=x1y2-y1x2)这样一条直线吧平面分成两个半平面:其中一个半平面的点都满足ax+by>c,另一个半平面的点都... ax+by=c(其中,a=y2—y1,b=x1-x2,c=x1y2-y1x2)这样一条直线吧平面分成两个半平面:其中一个半平面的点都满足ax+by>c,另一个半平面的点都满足x+by<c.对于任意两个点p1和p2,判断p1和p2是否位于这条直线的同一边 展开
 我来答
qiminixi
2014-03-27 · TA获得超过819个赞
知道小有建树答主
回答量:552
采纳率:0%
帮助的人:241万
展开全部
p1和p2的坐标代入直线方程中,得到:
c1=a*x1+b*y1;
c2=a*xx2+by2;
如果c1和c2都小于c 或者c1和c2都大于c说明两个点位于直线的同一侧。

主要是数学问题,高中数学。
追问
额。。。。。。。。。。。  亲  是C语言编程哦  谢谢
追答
这还不简单。。。
#include <stdio.h>
int main(int argc, char *argv[])
{
float x1,y1;//确定一条直线的第一个点 
float x2,y2;//确定一条直线的第二个点
float p1x,p1y;//点p1
float p2x,p2y;//点p2 
float a,b,c;//直线方程参数
float c1,c2; 

printf("请输入确定一条直线的第一个点:");
scanf("%f%f",&x1,&y1);
printf("请输入确定一条直线的第二个点:");
scanf("%f%f",&x2,&y2);

//计算直线方程参数 
a=y2-y1;
b=x1-x2;
c=x1*y2-y1*x2;
printf("直线方程为:%f*x+(%f)*y=%f\n",a,b,c);

//输入p1和p2 
printf("请输入点p1的坐标:");
scanf("%f%f",&p1x,&p1y);
printf("请输入点p2的坐标:");
scanf("%f%f",&p2x,&p2y);

//将p1、p2坐标代入直线方程 
c1=a*p1x+b*p1y;
c2=a*p2x+b*p2y; 

//判断是否在一边 
if(c1>c && c2>c)
printf("在同一边 (>c)\n");
else if(c1<c && c2<c)
printf("在同一边 (<c)\n");
else 
printf("不在同一边 (<c)\n");

return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式