c语言三点
‘壹’ c语言 判断三个点是不是在一条直线上 在线等 点自定
#include"stdafx.h"
#include<stdio.h>
#include<math.h>
intmain()
{
floatx1,x2,x3,y1,y2,y3;
scanf("(%f,%f) ",&x1,&y1);
scanf("(%f,%f) ",&x2,&y2);
scanf("(%f,%f)",&x3,&y3);
if((y1-y2)/(x1-x2)==(y2-y3)/(x2-x3))
printf("在同一直线上。 ");
elseprintf("不在同一直线上。 ");
return0;
}
举例:输入
(1,2)
(2,4)
(4,8)
‘贰’ C语言输入三个点的坐标A(x1,y1),B(x2,y2),C(x3,y3)。判断这三个点能否构成三角形
只要任取一点,并以此为基点,分别计算与另外两点连线的斜率,若AB的斜率,等于AC的斜率,则这三点是共线的,它们就不能构成三角形。否则就一定能够构成三角形。
‘叁’ 解析 c语言编写的根据三点得出圆心和半径的数学含义
/***************
* 已知三点求圆的 get_circle() 函数
* x1, y1为第一个点的坐标,以此类推
* r为求出的半径,x0, y0为圆心坐标
* 调用函数之前应先检查三点是否共线 否则会弹出被零除的错误
***************/
# include <math.h>
void get_circle(double x1, double y1, double x2, double y2, double x3, double y3, double* r, double* x0, double* y0)
{
double m1, n1, m2, n2, a1, b1, a2, b2;
m1 = (x1 + x3) / 2;
n1 = (y1 + y3) / 2;
m2 = (x2 + x3) / 2;
n2 = (y2 + y3) / 2;
a1 = (y3 - y1) / (x3 - x1);
b1 = n1 - a1*m1;
a2 = (y3 - y2) / (x3 - x2);
b2 = n2 - a2*m2;
*x0 = (b2 - b1) / (a1 - a2);
*y0 = a1 * *x0 + b1;
*r = sqrt((x1-x0)*(x1-x0) + (y1-y0)*(y1-y0));
return;
}
希望对你有帮助!
‘肆’ 已知三点求圆的方程的c语言编程
/*相关子函数由一楼abccsss的代码修改而成,其中第一个和第二个点以及第二个和第三个点的连线不得经过圆心!第一个和第二个点以及第二个和第三个点的横纵坐标不得相同!*/
#include<stdio.h>
# include <math.h>
void get_circle(double x1, double y1, double x2, double y2, double x3, double y3, double* r, double* x0, double* y0)
{
double m1, n1, m2, n2, a1, b1, a2, b2;
m1 = (x1 + x2) / 2;
n1 = (y1 + y2) / 2;
printf("\n\t第一条垂直平分线必过点为(%f,%f)",m1,n1);
m2 = (x2 + x3) / 2;
n2 = (y2 + y3) / 2;
printf("\n\t第二条垂直平分线必过点为(%f,%f)",m2,n2);
a1 = -(x2 - x1)/(y2 - y1);
b1 = n1 - a1*m1;
printf("\n\t第一条垂直平分线为y=%fx+%f",a1,b1);
a2 = -(x3 - x2)/(y3 - y2);
b2 = n2 - a2*m2;
printf("\n\t第二条垂直平分线为y=%fx+%f",a2,b2);
*x0 = (b2 - b1) / (a1 - a2);
*y0 = a1 * *x0 + b1;
*r = sqrt((x1-*x0)*(x1-*x0) + (y1-*y0)*(y1-*y0));
return;
}
typedef struct{
float x;
float y;
}bit;
main(){
printf("\n\t\t\t输入三个点以计算圆心和半径");
bit d[3];
printf("\n\t输入第一个点的坐标:");
scanf("%f,%f",&d[0].x,&d[0].y);
printf("\n\t输入第二个点的坐标:");
scanf("%f,%f",&d[1].x,&d[1].y);
printf("\n\t输入第三个点的坐标:");
scanf("%f,%f",&d[2].x,&d[2].y);
double r,x0,y0;
get_circle(d[0].x,d[0].y,d[1].x,d[1].y,d[2].x,d[2].y,&r,&x0,&y0);
printf("\n\t\t圆心为:(%f,%f),半径为%f",x0,y0,r);
}
‘伍’ c语言中怎样输入三点坐标使它们不在同一行
同一行就代表着纵坐标相等 只要纵坐标不等就ok啦
‘陆’ 关于用C语言求三点坐标围成的面积的问题
你的代码缺点scanf()函数写的太复杂,把里面的括号与逗号最好去掉,避免在输入数据时忘了按而出错,其中可以用空格来代替。
主要有两个错误,而出错的地方原因都是相同的,就是格式控制符不对,你定义的变量全部是double类型的,而你的输入输出格式却是整形%d的,你试着将输入输出中的%d改成%lf看看。
‘柒’ c语言:平面直角坐标系,输入三点坐标(六个数不要用括号分队)。判断能否构成三
#include <stdio.h>
#include <math.h>//库函数头文件;
int main()
{
int x1,x2,x3,y1,y2,y3;
float a,b,c;
scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
a=sqrt(pow(x1-x2,2)+pow(y1-y2,2));//通过两点之间的距离计算公式,得出任意两个点的距离;
b=sqrt(pow(x1-x3,2)+pow(y1-y3,2));
c=sqrt(pow(x2-x3,2)+pow(y2-y3,2));
if(a+b>c||a+c>b||c+b>a)//只要满足任意两边之和大于第三遍,就能构成一个三角形;
printf("三点连线可以构成三角形");
else
printf("三点连线不可以构成三角形");
}
//调用的库函数有:pow()指数函数,sqrt()开平方函数
‘捌’ c语言 判断三点一线
我也不大理解。但是你可以去看看关于数据存储方面的书。应当能给你解释清楚。
‘玖’ c语言三点法画圆 要交作业 在线等
是指给三点坐标,求过这三个点的圆?这明明是数学题。。。