结构题习题

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;
}

运行结果
在这里插入图片描述

楼主觉得这一题有可以改进的地方,就是象限可以放在程序中判定,而不需要使用者输入
下一篇放上改进的代码

猜你喜欢

转载自blog.csdn.net/weixin_43918004/article/details/84930155