A. 高分求 编程 c语言 已知2点求角度
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define pi 3.1415926
struct point
{
double X;
double Y;
};
struct line
{
point A;
point B;
double deg;
};
int main( )
{
line lineA;
line lineB;
double tmp;
printf("请输点坐标(x,y)构造第一条直线\n");
printf("第一点x与y:");
scanf( "%lf%lf", &lineA.A.X, &lineA.A.Y );
printf("第二点x与y:");
scanf( "%lf%lf", &lineA.B.X, &lineA.B.Y );
//求角度
tmp=(lineA.B.Y-lineA.A.Y)/(lineA.B.X-lineA.A.X);
lineA.deg=atan(tmp);
lineA.deg=lineA.deg*double(180)/pi;
printf( "第一条直线斜线角度:%lf,%lf\n", tmp,lineA.deg );
printf("请输点坐标(x,y)构造第二条直线\n");
printf("第一点x与y:");
scanf( "%lf%lf", &lineB.A.X, &lineB.A.Y );
printf("第二点x与y:");
scanf( "%lf%lf", &lineB.B.X, &lineB.B.Y );
//求角度
tmp=(lineB.B.Y-lineB.A.Y)/(lineB.B.X-lineB.A.X);
lineB.deg=atan(tmp);
lineB.deg=lineB.deg*double(180)/pi;
printf( "第二条直线斜线角度:%lf,%lf\n", tmp,lineB.deg );
printf( "两条直线角度差:%lf\n", lineA.deg-lineB.deg );
return 0;
}
/*
atan等三角函数算出来的是pi形式的,看看45度的:
printf("%f\n",tan(double(45)/double(180)*pi));
printf("%f\n",atan(1)*double(180)/pi);
写的真累,看你题目是C语言,所以没用C++类来写
用类来写,又好写,又好读,又不容易出错
point点(x,y)其实可以直接用COORD,又怕你没有数据结构COORD
比如:
struct line
{
point A;
point B;
double deg;
};
改成
struct line
{
COORD dian; //COORD编译器数据结构dian有dian.X和dian.Y
double deg;
};
*/
B. 用C语言编写程序,判断输入的二维点在第几象限(易懂的)
if(xy>0)
{
if(x>0)
printf("第一象限");
else
printf("第三象限");
}
else if(xy<0)
{
if(x>0)
printf("第二象限");
else
printf("第四象限");
}
else
printf("坐标轴上");
C. 大哥 坐标反算后的结果与象限角是什么关系 又怎样把反算的结果换算成正确的坐标方位角哪
设反算的结果为a,a=arctan(dy/dx),其中dy=y2-y1,dx=x2-x1.
若dy>0,dx>0,说明角在第一象限,坐标方位角b=a.
若dy<0,dx>0,说明角在第二象限,坐标方位角b=a+180.
若dy<0,dx<0,说明角在第三象限,坐标方位角b=a+180.
若dy>0,dx<0,说明角在第四象限,坐标方位角b=a+360.
D. 编程 输入一平面坐标点(x,y),判断并输出该坐标点位于哪个象限c语言
#include<stdio.h>
int x,y;
char *output[20];
int p;
void main(){
printf("请输入一个坐标如:3,3\n");
while(scanf("%d,%d",&x,&y)!=EOF)
{
if(x > 0 && y > 0)
p=1;
else if(x > 0 && y < 0)
p=4;
else if(x < 0 && y > 0)
p=2;
else if(x < 0 && y < 0)
p=3;
switch(p){
case 1:*output = "第一象限\n";break;
case 4:*output = "第四象限\n";break;
case 2:*output = "第二象限\n";break;
case 3:*output = "第三象限\n";break;
}
printf("%s",*output);
}
}