C语言结构体

输入长方形两个顶点,求长方形中点 

#include<stdio.h>
#include<stdlib.h>
typedef struct {
	int x;
	int y;
}pt;
typedef struct {
	pt pt1;
	pt pt2;
}rect;
rect* read(void) {
	rect* p_r = (rect*)malloc(sizeof(rect));
	if (p_r) {
		printf("请输入长方形的位置:");
		scanf("%d %d %d %d", &p_r->pt1.x, &p_r->pt1.y, &p_r->pt2.x, &p_r->pt2.y);
	}
	return p_r;
}
pt* midpt(const rect* p_r) {
	pt* p_pt = (pt*)malloc(sizeof(pt));
	if (p_pt) {
		p_pt->x = (p_r->pt1.x + p_r->pt2.x) / 2;
		p_pt->y = (p_r->pt1.y + p_r->pt2.y) / 2;
	}
	return p_pt;
}
int main() {
	rect* p_r = read();
	pt* p_mid = midpt(p_r);
	if (!p_r) 
	{
		return 0;
	}
	printf("长方形位置是(%d,%d)到(%d,%d)\n", p_r->pt1.x, p_r->pt1.y, p_r -> pt2.x, p_r->pt2.y);
	if (!p_mid) 
	{
		free(p_r);
		p_r = NULL;
		return 0;
	}
	printf("中点是(%d,%d)\n", p_mid->x, p_mid->y);
	free(p_mid);
	p_mid = NULL;
	free(p_r);
	p_r = NULL;
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值