结构题习题

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

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值