2(20分)
编程:定义一个结构体,用于表示平面上的一个点。结构体名为point,有3个成员项float x(横坐标)、float y(纵坐标)、int quadrant(象限),按序输入每个点的横坐标、纵坐标、象限位置,求两点之间的距离、判断是否在同一象限,然后输出结果。
(注:象限为i,表示点在第i象限)
输入样例:
请输入2个点的坐标及象限位置:
2.5 3 1 //第一个点
-1.2 5 2 //第二个点
输出样例:
两点间距离是:4.205948,不在同一象限
提示:
输入point的成员数据时,不要忘记取地址符 &
楼主的代码
#include<stdio.h>
#include<math.h>
struct point
{float x;
float y;
int quadrant;
};
int main()
{struct point po1,po2;
float s;
printf("请输入点1(x,y)象限:\n");
scanf("%f%f%d",&po1.x,&po1.y,&po1.quadrant);
printf("请输入点2(x,y)象限:\n");
scanf("%f%f%d",&po2.x,&po2.y,&po2.quadrant);
s=sqrt((po1.x-po2.x)*(po1.x-po2.x)+(po1.y-po2.y)*(po1.y-po2.y));
if(po1.quadrant==po2.quadrant)
{printf(" 两点间距离是:%f,在同一象限\n",s);
}
else
{printf(" 两点间距离是:%f,不在同一象限\n",s);
}
return 0;
}
运行结果
楼主觉得这一题有可以改进的地方,就是象限可以放在程序中判定,而不需要使用者输入
下一篇放上改进的代码